作者查詢 / ddavid

總覽項目: 發文 | 留言 | 暱稱
作者 ddavid 在 PTT [ Python ] 看板的留言(推文), 共767則
限定看板:Python
Re: [問題] 如何去除迴圈後多餘的東西
[ Python ]23 留言, 推噓總分: +11
作者: penut85420 - 發表於 2019/12/05 21:33(6年前)
11Fddavid: 對耶,有*a這招XD12/06 18:35
12Fddavid: python用zip跟*可以搞一堆奇奇怪怪的組裝處理XD12/06 18:36
13Fddavid: 然後不能接數字那個問題可以用str(a[0])解決,雖然就會感12/06 18:38
14Fddavid: 覺print(a[0], end='')會比print(end=str(a[0]))來得好,12/06 18:39
15Fddavid: 雖然可以拿到同樣效果,但前者在「意義上」比較正確12/06 18:39
19Fddavid: 樓上,這是3.6版的新格式化字串用法,參考:12/10 04:38
20Fddavid: http://zetcode.com/python/fstring/12/10 04:38
21Fddavid: 簡單來說f接的字串裡面,可以用大括號直接夾著一個算式,12/10 04:40
22Fddavid: python會evaluate其值來取代那個大括號12/10 04:41
Re: [問題] 如何去除迴圈後多餘的東西
[ Python ]13 留言, 推噓總分: +5
作者: TuCH - 發表於 2019/12/05 15:47(6年前)
8Fddavid: 關鍵應該是某些終端機不吃backspace的處理12/06 21:47
9Fddavid: 不是所有終端機都有處理游標位移相關的控制碼12/06 21:48
10Fddavid: 所以這招我不會很喜歡用,因為不同地方可能結果不同12/06 21:49
11Fddavid: 試了一下,Windows 10的command line就失敗了XD12/06 21:51
12Fddavid: 另外其實反正就是迴圈跑完要加印一次'\b',單以這個例子而12/06 21:52
13Fddavid: 言else其實是不需要的啊,反正做一次就對了12/06 21:52
Re: [問題] 如何去除迴圈後多餘的東西
[ Python ]14 留言, 推噓總分: +6
作者: TuCH - 發表於 2019/12/05 15:02(6年前)
6Fddavid: 樓上,if else跟for沒有相關性,要分開看12/06 18:29
7Fddavid: a if b else c近似為C++裡面的b ? a : c(注意順序)12/06 18:30
8Fddavid: b成立的話就a,否則就c12/06 18:31
9Fddavid: 那一行難懂是因為必須要知道語法parse的優先順序,如果能12/06 18:32
10Fddavid: 加上括號就會比較好讀了12/06 18:33
11Fddavid: 我個人寫到這些多個邏輯式、運算子或語法互套的情況都習慣12/06 18:33
12Fddavid: 很詳盡加括號表示解讀順序,不然有時自己回頭看都會花掉XD12/06 18:34
Re: [問題] 如何去除迴圈後多餘的東西
[ Python ]16 留言, 推噓總分: +8
作者: tttkkk - 發表於 2019/12/05 20:03(6年前)
3Fddavid: 問題原Po如果真的卡住需要細節思路解說的話可以回應一下哪12/06 03:42
4Fddavid: 邊不懂,或者補充一下你實際應用情況的條件讓大家考慮哪種12/06 03:43
5Fddavid: 方法會相對更適合12/06 03:43
[問題] 請教有關CNN分類的問題
[ Python ]64 留言, 推噓總分: +13
作者: zax5566x2 - 發表於 2019/11/19 19:37(6年前)
10Fddavid: 這要看你的準確率怎麼算的吧?11/19 22:39
11Fddavid: 如果是設定為二元分類的話,照理說這邊只有0% 50% 100%三11/19 22:41
12Fddavid: 種值,當然這是你的兩張圖在training testing data都均勻11/19 22:42
13Fddavid: 的情況11/19 22:42
14Fddavid: 但如果你不是做成二元分類而是最後拿到一個分數,比如是A11/19 22:43
15Fddavid: 這張圖的分數0.8 B是0.2,然後把1/0做為正確答案的話,就11/19 22:44
16Fddavid: 會評估出非0% 50% 100%的評估值了11/19 22:45
17Fddavid: 另外如果在testing data裡面不均勻的話,當然也可能有不一11/19 22:46
18Fddavid: 樣的值出現,就算使用二元分類。比如是4:6的話就會有11/19 22:46
19Fddavid: 0% 40% 60% 100%四種可能11/19 22:47
20Fddavid: 而以99.5%這個情況來看,應該不是不均勻的狀態,所以就比11/19 22:47
21Fddavid: 較像是你最後的結果是regression導致的,你得到了非常接近11/19 22:48
22Fddavid: 1的分數,但可能訓練還有不足、或是lr不夠小導致最後掉不11/19 22:49
23Fddavid: 到完美的那個點、又或者掉到某個99.5%的local maximum出不11/19 22:50
24Fddavid: 來了之類的11/19 22:50
28Fddavid: 其實如果有洗牌的話就有可能稍微跟1000倍epochs不一樣啦,11/20 00:08
29Fddavid: 因為前者就有可能連續多次train到同一張圖,改epochs的話11/20 00:08
30Fddavid: 就算洗牌也最多就是AB BA這樣的連續兩次XD11/20 00:09
31Fddavid: 二元分類其實就是你最後吐output之前有沒有過一層強制把它11/20 22:45
32Fddavid: 變成1/0 or 1/-1 or 1/2這樣的輸出11/20 22:46
33Fddavid: 如果沒有的話,例如兩個類別是1 2,那就可能吐出0.892、11/20 22:47
34Fddavid: 1.812、1.433之類的值,而我們看離1近還離2近最終判斷是哪11/20 22:48
35Fddavid: 一邊,但計算Error的時候是用實際的y去減預測出來這個值(11/20 22:49
36Fddavid: 然後看取絕對值或平方或其他處理)來評估的11/20 22:50
37Fddavid: 也就是說當你最後有沒有通過那層強制離散化處理,則計算的11/20 22:51
38Fddavid: Error概念是有一點差別的11/20 22:51
39Fddavid: 有通過的話,你評估的是 預測正確數/應預測總數,也就是以11/20 22:52
40Fddavid: 案例「數量」為單位的評估11/20 22:52
41Fddavid: 但最後沒有通過那樣一層的話,你評估的就會是「你的預測平11/20 22:53
42Fddavid: 均離實際答案多近」。也就是答案是第2類,結果吐出1.9跟11/20 22:54
43Fddavid: 1.6,雖然到最後實用時都會當成預測第2類正確來處理,但在11/20 22:55
44Fddavid: 內部分析評估時1.9顯然是比1.6更好的預測11/20 22:55
45Fddavid: 也因此,例如以你的情況,就算2000張圖都猜對了,但是對第11/20 22:56
46Fddavid: 1類圖吐出的output都是1.005,對第2類圖吐出的都是1.995,11/20 22:56
47Fddavid: 那麼你就還是有個0.005的平均誤差存在11/20 22:57
48Fddavid: 即便實用上它吐出1.995我們就會做為預測為第2類來使用11/20 22:58
49Fddavid: 然後洗牌的部分是說單一epoch裡面train圖的順序會打亂11/20 22:58
50Fddavid: 比如你的training data裡面有500張A跟500張B,但連進500張11/20 22:59
51Fddavid: A再進500張B循環,或者ABABABABAB循環,或者每個epoch都打11/20 23:00
52Fddavid: 亂,第一個epoch AAABAAABBBABABBA...,第二個BBABAABBAB11/20 23:00
53Fddavid: ...,不同的打亂方式是有可能讓訓練出來的模型出現差異的11/20 23:01
54Fddavid: ,並不會因為都是同樣張數就肯定有一樣結果11/20 23:02
55Fddavid: 這也會跟使用的機器學習模型有關,有些模型確實不受順序影11/20 23:02
56Fddavid: 響,但以NN往往相對都比較會受到training data順序影響11/20 23:03
58Fddavid: sigmoid也沒有直接變成0/1啊11/21 22:10
59Fddavid: 你要最後直接過一層離散化的0/1 function才行11/21 22:11
60Fddavid: Sigmoid跟Softmax的差異不是在這邊11/21 22:11
61Fddavid: Softmax確保一次輸出多個類別的機率值時,加總會是111/21 22:18
62Fddavid: 而Sigmoid沒有這個特性,它可以對A類別說0.9同時也對B類別11/21 22:18
63Fddavid: 說是0.8511/21 22:18
64Fddavid: 所以如果做multi-label learning的時候就比較會採Sigmoid11/21 22:19
[問題]NN中關於影像的normalization
[ Python ]24 留言, 推噓總分: +3
作者: oo855050 - 發表於 2019/11/20 00:19(6年前)
5Fddavid: 其實這些全部都是normalization啊,哪個好要看實際應用的11/20 23:05
6Fddavid: 資料特性跟需求目的而定11/20 23:05
7Fddavid: 而normalize對象哪些該一起、哪些該分開,就會依據你對這11/20 23:06
8Fddavid: 些項目的重要性跟獨立性而定11/20 23:07
9Fddavid: 例如你認為第一個像素跟第二個像素在你的判斷中是各自獨立11/20 23:08
10Fddavid: 的,你認為第一個像素之間的明暗比較才有意義,而它與第二11/20 23:08
11Fddavid: 個像素的相對關係就不重要,而且你認為這兩個像素的重要性11/20 23:09
12Fddavid: 相等,那你就可能採取個別對特徵行(單一像素)做min-max11/20 23:10
13Fddavid: 而另一個相對的例子,你覺得不同圖片之間的比對並不重要,11/20 23:11
14Fddavid: 重視的特徵是同一張圖片內的明暗變化,也就是例如兩張圖片11/20 23:12
15Fddavid: 的明暗度可能差異超大,但是這兩張圖都是上半亮下半暗你就11/20 23:12
16Fddavid: 覺得其實可能是類似的,在這種情況我們就可能採取對資料列11/20 23:13
17Fddavid: (單一張圖內部的像素)做min-max11/20 23:13
18Fddavid: 而如果圖片之間的明暗比較以及單一圖片內部的明暗比較都同11/20 23:14
19Fddavid: 樣重要,我們就可能同時對所有特徵資料行列(所有圖片的所11/20 23:14
20Fddavid: 有像素)同時一起做min-max11/20 23:15
21Fddavid: 另外如果覺得不只是相對的明暗度,絕對的明暗度也非常重要11/20 23:16
22Fddavid: 那麼我們就不會採用min-max而是採用直接從0-255映射到0-111/20 23:17
23Fddavid: 之類的方式11/20 23:17
[問題] 抓格式不整齊的csv
[ Python ]40 留言, 推噓總分: +12
作者: lh1122 - 發表於 2018/03/29 16:00(7年前)
4Fddavid: 如果後欄是數字的話就還有機會,你可以在這一欄特別處理讀03/29 16:31
5Fddavid: 到數字為止(前提是這欄裡面沒數字)03/29 16:31
6Fddavid: 或者這一欄如果「一定有剛好一個逗號」的話,你可以當成兩03/29 16:32
7Fddavid: 欄來讀,再合併並補上中間的逗號03/29 16:32
8Fddavid: 若沒以上這些比較好處理的情況,要程式自動處理就不容易了03/29 16:33
[問題] 計算名字list中開頭字母的人數
[ Python ]10 留言, 推噓總分: +4
作者: alair99 - 發表於 2015/03/17 20:27(11年前)
5Fddavid: name_count[ord(name[0]) - 65] += 103/18 02:14
6Fddavid: 利用換算ASCII碼 - 65當索引值(0~25)03/18 02:15
7Fddavid: 不過此法要確保沒例外,不然就會List index out of range03/18 02:17
8Fddavid: 可先用一行確定值在65到90之間03/18 02:17