這篇太長了,就此結束
若DCGAN跑出來的結果理想的話,可能還有下篇
不理想的話,很可能會先去找其它事做,哪天想到怎麼處理再開新篇
--------10/6 要做機器學習、WASM還是建議用Linux系統------------
等待機器學習過程中先找Python圖片剪裁函數
我印象中應該是知乎專欄那篇有寫到動漫人物頭像剪裁
https://zhuanlan.zhihu.com/p/24767059
那應該是很可能會有圖檔大小剪裁相關的函數的
若不剪裁特定物體的話
只要把圖檔改成一樣大小的話
這樣處理就行(底下的faces是資料夾名稱,可以任意取)
雖然是不太建議啦,因為直接resize圖檔變形情況通常會較剪裁後resize嚴重
import cv2
import sys
import os.path
from glob import glob
def detect(filename):
print(filename)
#↑這行只是用來顯示目前在處理哪個圖片,直接關掉去faces資料夾重新整理看結果也可
image = cv2.imread(filename)
face = cv2.resize(image, (96, 96))
save_filename = '%s.jpg' % (os.path.basename(filename).split('.')[0])
cv2.imwrite("faces/" + save_filename, face)
if __name__ == '__main__':
if os.path.exists('faces') is False:
os.makedirs('faces')
file_list = glob('*.jpg')
for filename in file_list:
detect(filename)
需要pip install opencv-contrib-python才能使用import cv2
這個.py檔要放在圖片數據集底下使用才有效
因為是讀取當前目錄底下的所有.jpg檔處理
在11:30之前折騰了會
好在今天已經看過《終將成為你》第一話,至少感覺到算有放假了
(《風靈玉秀》第二話還在想要今天看還是改天看)
或者說是今天本來就放假,但今天在11:30之前所做的事情大多沒什麼進展
還是對GAN、CNN等一竅不通
就算是單純應用,也不知道怎麼把數據集改成自己的
其實改數據集的話
應該根據這篇
https://github.com/carpedm20/DCGAN-tensorflow
來改就行
但該程式不是運作在windows下的
所以程式中一些data_dir相關的路徑要把./給去掉
不過圖檔從哪來呢?
除去在那篇Github的python download.py mnist celebA之外
嗯~至少Kaggle深度學習的課程資料有提供不錯的與狗相關的圖片
雖然該數據集的圖檔大小不是固定的
所以還要再另外程式處理
具體圖片縮放程式要怎麼寫我還要研究
嗯,下午就先研究要怎麼
把Kaggle狗的數據集移到https://github.com/carpedm20/DCGAN-tensorflow
這個好了
唔,試了下,理論上圖片要統一大小
但若圖片大小不統一的話
也可以像是
python main.py -input_height=108 --dataset=test --crop --train
強行裁切圖檔至108高度
雖然應該是不建議這麼做
不過我還是先試著跑一次
目前正在訓練當中,預設是epoch 25代
那至少要epoch 1完成才會有圖檔
程式碼大概僅有一個地方要改
若安裝的tensorflow是用pip install的安裝方式
代表只用CPU
假如電腦不支援某種指令集的指令的話
python會跳出
Your CPU supports instructions that this TensorFlow binary
was not compiled to use: AVX2 FMA
這時只要將main.py的
import os
底下加一行
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
就可以忽略此錯誤了
關於這錯誤詳情可參考
https://blog.csdn.net/hq86937375/article/details/79696023
嗯...理論上要先學機器學習再學深度學習
不過那是因為機器學習的課理論上會有神經網路的部份
而Kaggle的機器學習課程內容看起來是只有決策樹、隨機森林
至於深度學習是談計算機視覺跟卷積(convolutions)
感覺除了都是用Python外沒什麼重疊的地方
所以就先看Deep Learning的教學了
(Kaggle是講究速成的,對於程式背後所使用的數學不太深入講解
而我的數學程度要搞懂機器學習、深度學習、計算機視覺前
至少還得先理解 卷積(convolutions)、對矩陣微分、凸函數
還有 雜訊對於圖像生成的作用
雖然雜訊這個看起來是比較不用徹底理解)
稍微試了下
https://www.kaggle.com/dansbecker/exercise-convolutions-for-computer-vision/data
全下載下來
(其中train,訓練用的數據集,跟test,測試用的數據集檔案還蠻大的,加起來約720MB)
把exercise_1.py的圖檔路徑改成確實存在的圖檔
然後再把
https://www.kaggle.com/dansbecker/exercise-convolutions-for-computer-vision/notebook
的程式碼寫在一個py檔即可
而import 要改成對應的路徑
也就是
from learntools.deep_learning.exercise_1 import load_my_image, apply_conv_to_image, show, print_hints
新的py檔跟exercise_1.py放在同個目錄的話
這邊就改成
from exercise_1 import load_my_image, apply_conv_to_image, show, print_hints
import後面接的就是def的函數啦
其實這邊偷懶寫成from exercise_1 import * 一次載入全部函數也是可以的
那為什麼不可以寫成import exercise_1呢?
其實是可以的
只是程式要改成exercise_1.load_my_image()
exercise_1.show(original_image)
filtered_image = exercise_1.apply_conv_to_image(conv, original_image)
exercise_1.show(filtered_image)
也就是引入的每個函數前面都要加上exercise_1
用from的寫法的話,就會把引入的py檔當作全域變數
通常狀況下用from會比較方便
可是若全用from
若要是from的函數名或變數有衝到的話
就會有麻煩!!
若程式沒辦法順利運作的話
初步估計可能原因是少安裝了些相應的函式庫
(此外要注意exercise_1.py是用Python 3.X版寫的)
應該
pip install numpy
pip install matplotlib
pip install Image
後就可以了
若pip過程出現Requirement already satisfied
基本上就是已經安裝了
那通常就不會出問題
假若全裝完後還是有問題的話
建議輸入python後按enter下
確認自己的Python版本是2.X版還是3.X版
我這是以3.X版為主
但是Python 2.X版的現有網路資源也很多
可重新去找符合Python 2.X版的機器學習程式或改寫
不過要注意的是TensorFlow是配合Python 3.X版使用的就是了
若程式庫要更新的話就pip install --upgrade 程式庫名
嗯,大概就這樣
吃完午飯、曬完衣服後繼續研究!!
看是要研究數學還是如何應用
我想我會先繼續看要怎麼應用
受挫時或者是想修改程式時才回去研究該程式確定會用到的數學
因為數學根據我買回來的機器學習相關書籍
粗略掃了下,我覺得有太多沒學過的了(就算有學過也忘得差不多了)
可能不是短時間能補回來的,也不太清楚要怎麼補
---------10/6 11:30之前-----------------
目前的麻煩是我的電腦獨立顯卡壞了,所以CUDA相關功能肯定是沒辦法使用的
有些茫然
正巧找到TensorFlow.js
(基本上是配合Node.js使用的,Node.js是伺服端語言
因此比較沒WASM的限制
例如就算把Python用Cython轉成C語言
再用emcc指令編譯成WASM
若程式中有 os.mkdir(資料夾名稱)
也就是產生個資料夾的指令
這類指令因為網頁安全性的考量
估計也還是沒辦法生效的
附帶一提:
上述操作其實挺麻煩的
而且機器學習牽扯到許多程式庫
Cython能否轉得那麼順利還沒試過
除非你作業系統本來就用類Unix系統
不然若不用虛擬機裝Ubuntu之類的Linux系統
用emcc產生WASM過程中
很可能會出現一堆奇怪的錯誤
而用虛擬機的話多少感覺會慢一些(嗯...其實是可以安裝雙作業系統啦)
雖然就算是Ubuntu系統也是要先設定好環境才能讓emcc這指令順利運作
但至少找到的網上參考資料大多是直接用就不會出問題
附帶一提,Make Girls Moe雖然也是js,看起來也有用到WASM
但是它也是配合Node.js使用的
不太清楚能否在file:///的狀況底下使用
至少用Firefox直接開是不行啦)
就試著接觸吧
初步試用
https://js.tensorflow.org/tutorials/mnist.html
(若想訓練快一些的話,訓練世代epochs值可以調低些(2或1)
雖然那樣訓練結果可能就會辨識錯誤
用這範例需要安裝Node.js跟Yarn
基本上Google到官網選擇自己的作業系統安裝後大致上就行了
記得安裝完後命令提示字元要重開,不然環境變數很可能不會生效導致找不到yarn指令這樣)
目前覺得呈現效果還算理想
教學影片看起來是在
https://www.youtube.com/playlist?list=PLRqwX-V7Uu6YIeVA3dNxbR9PYj4wV31oQ
嗯,至少有英文字幕!!
唔,覺得教學影片似乎不太好用
這邊只說下發現
我覺得若用Javascript來做機器學習
有個困擾是圖檔資料的讀取
因此觀察了下mnist這範例
發現它的手法也確實是Javascript的侷限
首先圖檔來源是
const MNIST_IMAGES_SPRITE_PATH =
'https://storage.googleapis.com/learnjs-data/model-builder/mnist_images.png';
做法是用個<img>,指定來源為該圖檔
該圖檔的大小是784*65000 pixel
然後開個canvas,寬度一樣,但高度是採取一次讀5000pixel
先drawImage再用getImageData把圖檔資料讀進來
(因為getImageData只能讀取畫在Canvas上的資料)
嗯...所以我感覺似乎缺乏使用TensorFlow.js的理由
在讀取圖檔部份會比Python麻煩很多
用TensorFlow.js的好處是
看起來可以用Javascript寫機器學習的程式碼
可是假若都要用Node.js的話
我們可以透過Node.js先執行Python
具體可參考
https://stackoverflow.com/questions/23450534/how-to-call-a-python-function-from-node-js
那感覺上只要把Python產生的圖檔結果傳給Javascript即可
像透過<img src="圖檔路徑">
程式動態指定的話會像
var img = new Image();
img.src = "圖檔所在路徑"
img.onload = function() //圖檔載入完成後要做的事情
這樣
-----------------10/5 簡略看mattya的Chainer-DCGAN.py---------------------
也就是看這篇https://github.com/mattya/chainer-DCGAN
注意:DCGAN.py該檔案是Python 2.X版寫的
到3.x版要做以下修正
from StringIO import StringIO
改成
from io import StringIO
print len(fs)
改成
print(len(fs))
所以
print(len(dataset))
也要改
我目前就只修正到這邊
因為再往下的程式碼比較難懂
哦,對,路徑寫法要改下
./那是Linux(類Unix都是吧)底下的寫法
代表當前目錄,所以若在Windows使用這程式的話,要把./去掉
在使用該程式前
要在程式檔那層路徑先創好images資料夾(不然就把檔名改掉)
再把圖檔放進去
不過圖檔的格式有沒有規定這我在程式碼中看不太出來
因為Linux環境底下副檔名的用意主要是配合程式參數的
例如用gcc編譯.c就是用C編譯,編譯cpp就是用C++編譯
只看得出來是用二進位格式讀檔
今天蠻累的
明天休假,希望明天能把大篇幅在做些什麼看懂
今天有看下Chainer的Docs(可以說是文檔,類似Go Docs那樣的東西)
不過粗略看了下感覺根本看不懂
其實會寄望明天也是因為
我稍微掃了一下DCANG.py這檔案
除了讀取圖檔,跟把圖檔產生在指定目錄底下的程式基本上都看不懂
CUDA有些印象,但忘了,若印象沒錯的話應該是跟GPU相關的
反正就算是明天,也肯定是各個沒看過的函式
去Python或Chainer的網站查
又或者是看StackOverflow或者是哪邊有寫到較詳細的介紹這樣
-----------------10/4---------------------
嗯,沒錯,Python機器學習,確實是透過雜訊(noise)來產生圖形的
可是具體過程不是很清楚
因為圖像生成(imaging,總算知道比較正式的稱呼了)所使用的雜訊種類可能有很多種
不過圖像生成大多都用雜訊來生成圖片就是了!!
底下這篇有介紹柏林雜訊
https://www.redblobgames.com/articles/noise/introduction.html
同樣是↑這篇文章內有提到
為什麼要用雜訊生成圖片?
因為這樣比較自然
若採用每個pixel隨機一個顏色的做法
要湊出對人有意義的圖像那機率超級渺茫啊
此外雜訊是可以透過參數調整的
像這篇的裡面的網頁demo連結
https://github.com/mattya/chainer-DCGAN
雖然不知道它的雜訊是什麼
但感覺雜訊強度越強,出來的圖片越清晰
看了Make_Girl_Moe開發者其中一個的介紹
覺得Chainer這個框架感覺值得一碰
就稍微試了下
根據這兩篇翻譯文章實作成功
https://imonce.github.io/2016/12/14/Chainer%E5%85%A5%E9%97%A8%E6%95%99%E7%A8%8B(%E4%B8%8A)%EF%BC%9A%E5%9C%A8Chainer%E4%B8%AD%E5%81%9A%E7%BA%BF%E6%80%A7%E5%9B%9E%E5%BD%92/
https://imonce.github.io/2016/12/15/Chainer%E5%85%A5%E9%97%A8%E6%95%99%E7%A8%8B(%E4%B8%8B)-MNIST%E6%89%8B%E5%86%99%E4%BD%93%E8%AF%86%E5%88%AB/
需要注意的大概就是FunctionSet是Chainer初代才有的程式庫
後來已經被Chain或ChainList取代掉
詳請請看
https://docs.chainer.org/en/latest/upgrade_v2.html
然後ctrl-f 輸入functionset
所以把程式碼中的兩個FunctionSet改成Chain
程式就能順利執行了
(注意大小寫要完全一致,習慣是首字大寫)
雖然不是很清楚執行結果的意義
手寫數字辨識測了幾次都是訓練五輪左右辨識率高達96%
但是只看數字這樣跑
缺少圖片跟實際比對過程感覺很缺乏實感
其實一開始我下工回家後是在用這篇
https://zhuanlan.zhihu.com/p/24767059
可是我的沒圖檔數據集
理論上是要照教學爬蟲或自行下載圖片然後再用頭像辨識截圖成固定大小這樣
但我稍微測試了一下
現成的DCGAN─Tensorflow
就算缺乏數據集,python main.py一次還是很久
到它爆出錯誤也還是要蠻長一段時間
且這程式就路徑寫法看起來是在Linux環境底下執行的
所以覺得還是另闢蹊徑好了
-----------------10/3---------------------
看書
有心得再分享,雖然目前覺得有些累,感覺很可能會沒成果
看書後感覺有些幫助
不過想了一會兒
我覺得現階段對我較有幫助的是
先確認Python是如何產生圖檔的!!
看了下手邊有的原始碼
感覺好像pyTorch的torchvision.utils似乎有的樣子
至於其它的似乎就比較不明顯
utils負責的應該是存圖檔啦
產生圖檔內容的話是歸在哪部份還不清楚
雖然應該就是存圖檔的第一個參數
可是看不太出來是怎麼畫的
好像只找到net_G(noise)這樣的
-----------------10/2---------------------
今天把決策樹─CART演算法實作讀完或讀一段落就休息
https://machinelearningmastery.com/implement-decision-tree-algorithm-scratch-python/
不然雖說假日悠閒滴度過,但我現階段打電動一下子就膩了
最近在碰《太吾繪卷》,不過感覺我有些選擇困難啊!!
(目前覺得《太吾繪卷》遠距離攻擊過於有利)
而想看的動畫是漫改,若先看漫畫的話估計就沒動力看動畫,所以還是等動畫出吧!!
因此其實也沒什麼事情好做的!!
嗯,不熟悉Python語法看不太懂
不過Python中,用括起來的是個List,可以把它想成陣列
[-1]的話代表是最後一個元素
然後看這程式碼會發現
決策樹(decision tree),是個不用隨機(random)的機器學習手段
(後來發現那篇在實際應用時還是有用到隨機,感覺是把樹分成幾份folds時有用到隨機)
這可能也是機器學習很常會優先介紹決策樹的原因吧
確保大家的執行結果都相同
主要是卡在不太清楚什麼是class_value
有用print([row[-1] for row in group])這類手法看
只是覺得跟想像中的結果不太一樣,解釋不太出來含意
class_value應該就是要把結果分成幾類
以該網頁列的程式來說就是分兩類(例如銀行判斷該客戶未來是否會還款)
嗯,繼續研究!!
我是沒想到機器學習的東西就算把實作程式碼列出來我也看不懂
哦
[row[-1] for row in group]的意思是
group是個字串或List
若print(str(group))的話,會看到像是
[[7.444542326, 0.476683375, 1]]這樣的東西
可以想成group[0]是[7.444542326, 0.476683375, 1]
然後row就像是索引,group[row]這樣
那row[-1]就是取出最後一個元素
也就是1
最外面的意思就是把這結果轉為List
因此最後得到[1]
若group有不只一個元素的話
例如group有九個元素,每個元素都是具有三個元素的list
[[2.771244718, 1.784783929, 0], [1.728571309, 1.169761413, 0],
[3.678319846, 2.81281357, 0], [3.961043357, 2.61995032, 0],
[2.999208922, 2.209014212, 0], [7.497545867, 3.162953546, 1],
[9.00220326, 3.339047188, 1], [10.12493903, 3.234550982, 1],
[6.642287351, 3.319983761, 1]]
那[row[-1] for row in group]結果就是
[0, 0, 0, 0, 0, 1, 1, 1, 1]
這樣
這種for迴圈前面加變數的做法也可以搭配if使用
可以簡化程式
不必寫成
result = map(function, filter(condition, numbers))
或配合lambda表達式取值像↓這樣
result = filter(lambda x: x > 5, numbers)
詳請請參考這兩篇文章
https://stackoverflow.com/questions/6475314/python-for-in-loop-preceded-by-a-variable
↓這篇是stackoverflow該問題的簡體中文翻譯
https://codeday.me/bug/20171111/95039.html
---------10/2稍早之前--------------
看了下Make Girls Moe的原始碼看不懂
不過看了後確定不是純用Javascript寫
找到了WASM檔跟不確定作用的.egg檔
總之看了一陣子,感覺程式碼主體並沒放出來(像用來產生WASM的檔案感覺沒找到)
但可以透過
README.md的敘述
(下載Github程式碼後
可以用git clone或用Github網頁的Download ZIP直接整個目錄下載下來
https://github.com/makegirlsmoe/makegirlsmoe_web
把src/Config.js第一行的var debug=false;改成var debug=true;後
再用命令提示字元切換到目錄底下
npm install
安裝過程會跳很多警告,然後說有錯誤,不過實際上運作感覺不出問題
npm start即可
若沒npm指令的話先去node.js官網下載
https://nodejs.org/en/)
佈置在自己的node.js伺服器上
理論上npm start後,設定程式通過防火牆後會自動開啟網頁
不然就打網址
http://localhost:3000
或
http://127.0.0.1:3000
嗯~那...在機器學習書來之前
我除了看Kaggle學習以外能做的事情也不多了
今天就悠閒滴度過吧
------------------↓10/1----------------
明天假日打算花些時間研究Make_girl_moe的原始碼!!
看了Kaggle機器學習教學
初步感想是,機器學習很易於使用,但不易理解、重新實踐
僅知道個概念是
機器學習本質上就是在求些函數的極值
例如損失函數的極小值
(損失函數不清楚是什麼
但假設我們是預測未來股價
那損失函數很可能是未來股價-我們預測的股價取絕對值
也就是|未來股價-我們預測的股價|)
像決策樹常用的演算法有三種
ID3
找出信息增益最大的
C4.5或C5.0
先找信息增益高於平均的屬性,再找其中信息增益率最高的
CART
找Gini index的極值,極大還極小不確定
但聽說Gini index概念跟 熵類似,系統混亂的程度,因此應該是求極小值吧
https://zhuanlan.zhihu.com/p/29980400
所以機器學習建立模型的要點就是
把問題轉化成求些函數的極值
資料來源:https://zhuanlan.zhihu.com/p/34443076
為了理解與重新實作出機器學習演算法
雖然其實是沒必要自己實作出機器學習演算法了
只是就算只是純應用現有機器學習演算法我也不知道該怎麼用啦!!
我是買了書,但具體如何要等書到才知道,因此先不列書名
回正題,9/31在看這篇
https://www.kaggle.com/dansbecker/your-first-machine-learning-model
這篇要能順利運作的重點是
pip install scikit-learn
其實以後會用到的東西可以早些安裝
像是tensorflow、keras這些框架還有openCV等
不過具體安裝要打些什麼要找下
(像openCV要打的是
pip install opencv-contrib-python
或pip install opencv-python
前者是比較完整的安裝,後者是只安裝主要模組)
大概就這樣
教學中的東西若要確實顯示出來
假如是用python 檔名.py 的方式的話
基本上用print()即可
例如
print(melbourne_data.columns)
文章中寫的輸出那些
是假設你是用直譯的
也就是先python後直接enter
然後在裡面一行一行輸入各指令的所會出現的畫面
我覺得許多機器學習的學習資源
似乎都不是專案型的
比較像是學各類積分方法
然後說哪些題目能用上什麼積分法
後來總算找到個人較中意的學習類型
Kaggle網站https://www.kaggle.com/
是用來培養資料科學人才的
最主要的特徵是
有很多類型的比賽
會提供給參賽者實用的數據集(datasets)
然後比賽結束後
勝利者也常會分享做法
初步感覺是很理想的學習法
課程看了兩段
覺得寫得還算淺顯
從房價的評估談決策樹(類似if-else)
然後說train(訓練)其實就是fit(擬合)
傳統神經網路或語音辨識學習資料
很常會看到train這詞
算是讓人把可能過往學過的東西聯想在一塊
相較於常見Machine learning學習資源塞領域專用名詞量少
我初步感覺自己較喜歡這形式的教學
我準備回家後寫第一個作業
那剩下的等下工回家再說
哦,這第一個作業真得蠻棒的
連軟體安裝都不需要
直接在網頁上寫(它是把這網頁系統叫做NoteBook啦)
第一個作業寫得大致上還算順利
雖然中間因為英文不是很好導致第二題送了幾次才過
像是Lot size不知道是指Lot Area還是Lot Frontage
附帶一提,不管哪個我都不知道意思
跟房地產相關的字
哦,查了下應該是Lot Size基地面積,可以理解為坪數
那繼續奮鬥
這個Kaggle還有教Python、R等
我覺得可以蠻值得期待這教學的
(好像沒教Matlab,不過機器學習較常見的也是Python跟R
可能是因為有Matlab比較專業,比較需要付費的考量在吧)
在進行下題前
我先把環境在自己電腦建置好再進行下一步
看英文瞎撞了一陣子之後(嗯,以後應該還是先google看有沒有現有答案)
推薦閱讀這篇
https://oranwind.org/python-pandas-ji-chu-jiao-xue/
基本上照著這篇做就沒問題了
若打pip install pandas出現pip ...不是可執行的程式之類的
那就要先安裝Python 2.7或Python 3.6
聽說Windows安裝程式是Python 2.7.9以後的版本都預設有pip指令
然後程式碼可能要改下
-----------------------檔名.py----------------------
import pandas as pd
melbourne_file_path = 'melb_data.csv'
melbourne_data = pd.read_csv(melbourne_file_path)
#melbourne_data.describe()
print(melbourne_data)
-------------------------------------------------------
隨便一個.csv檔都行
選melb_data.csv是因為Kaggle課程底下的Data可以下載的到
但是要跟.py檔放在同個路徑底下
註解掉的那行(Python的單行註解是#符號開始)
好像是因為Pandas在15版以後有做些修正
因此執行會看不到結果
這樣子的話在
命令提示字元
切換到檔名.py所在的目錄底下(用cd指令)
再輸入python 檔名.py
就能看到結果了
不過只會出現概略的結果
(畢竟如果要看全部的結果是可以直接用excel匯入CSV
或者是寫些程式讀取CSV檔)
若要出現的更細
需要對檔案做些處理
(也就是程式碼要改下,像是引入DataFrame
上述那個超連結看起來寫得蠻詳細的,雖然我還沒全部都試)
那9/30大概就這樣
16:50~20:24結束(中間處理些雜事,不然不需要花那麼久的時間!!)
用Kaggle感覺有方向多了
或者說是至少感覺自己有些事情做
--------------↓9/29---------------
其實在能網頁中使用FFmpeg之後
我覺得要做出一定水平的影片還是很難
動畫就別提了,是像Lex動漫新番預告片的效果都有些難度
雖然若用專門的影片編輯軟體(幾乎都是得付費的),可行性就高出許多
不過要做影片,需要圖檔吧?
圖檔哪來?
全都是侵權的話很容易起爭議
所以先來研究下電腦生成圖片(自動作圖)吧
(查了一下,日文有自動作圖,但不是這個意思,比較偏AutoCAD相關的
所以這方面不太清楚確切的用語是?)
這個純粹只是想研究看看
而且其實也沒有很想研究,只是想說能否把訓練的圖片(原始數據集,datasets)改成自己喜歡的
若只是想用結果的,這邊有個人覺得還不錯的現成網站能用
https://make.girls.moe/#/
上述這個網站用手機也能順利運作
哦,這個也有開放原始碼
https://github.com/makegirlsmoe/makegirlsmoe_web
若覺得眼睛怪怪的是正常的,因為眼睛特別難處理
那就開始研究吧!!
我覺得有三篇文章還不錯
https://zhuanlan.zhihu.com/p/24767059
https://zhuanlan.zhihu.com/p/28601032
↑文章提到的
https://github.com/jayleicn/animeGAN
轻叩次元壁 -- 真人头像漫画化
https://zhuanlan.zhihu.com/p/35777164
這篇文章算應用的很強的了
作者是李嘉銘
也就是以前Qiita線稿自動上色技術分享─翻譯自日文的那篇,
↓該文章的程式碼(但目前不知道放的程式碼是否完整
是說做完善後會公開)
https://github.com/jerryli27/TwinGAN
當然我是還沒實踐過
我是有稍微試著看下原理一類的
隱約覺得是學不動
就跟接觸機器學習的感覺一樣
畢竟這本來就機器學習,GAN也是機器學習下的其中個分支
不過還是先試試看吧
不行的話再只著重軟體的使用!!
(應該很快就不行了,我非假日精神不好,假日精神好的時間也很短)
不過看了幾篇文章
共通點是程式用Python
(make girl moe看不出用的是什麼
乍看之下是純用Javascript
我好像找不到.wasm檔案
但我不記得Javascript支援class、import的寫法
(啊,大概真的是用Javascript寫的,我想起來class在ECMA6Script標準後開始支援
至於import的話,好像在.js檔案的時候是支援的,用來引入別的js檔用的
不然.js檔讀取些外來變數、函數會有困難)
不過我沒接觸過Vue、React等框架
所以也許還真的是純用Javascript寫的)
至於TensorFlow那是框架的名稱
而PyTorch還沒研究不清楚(看程式碼的話,基本上就跟Python import現有的程式庫差不多)
嗯...我想還是先從公開課下手好了
這篇感覺不錯
Coursera Machine Learning スライドまとめ
老實說那個日文我沒翻譯看不懂
https://qiita.com/tackey/items/89c4a94f1c0c36d3c4d3
為何是日文
其實點進去細項的超連結後就是英文PDF了
畢竟是Coursea(國外的著名公開課網站)的
其實我應該先用Google搜尋的
只是正好想起來Qiita這個網站
搜尋一下就正好看到
那,開始讀吧!!
這個是Machine Learning
沒意外的話離我的目標 GAN 或更進階的什麼N 會有段很遙遠的距離
但今天不是假日
我想還是先別用編譯環境這類較屬於軟體操作的事情好了
為了偷懶就先讀英文PDF吧
沒作業純學習的話是很輕鬆的,因為學得怎樣也不知道!!
嗯,很簡短的投影片
對應的課程應該是這個
不過這是2008年的影片,而Qiita那篇是2016年開始學的
但公開課確實是有可能用過往的影片啦!!
(至少老師的名字是同一個人 Andrew Ng ,基本上機器學習資料很容易看到這名字
不過看維基百科才知道,Coursea是他跟另一個人共同創辦的)
基本上看PDF是說
機器學習的定義
大致上就是機器學習是種處理問題不太需要一有變化就寫程式的技術
主要是用來處理不太能透過迅速寫程式來解決的問題
像是無人直昇機、手寫辨識、語音辨識(像語音搜尋那樣)、電腦視覺(像照片人臉辨識)
機器學習分兩類
監督式機器學習(有正確答案的)
跟
非監督式機器學習(應用範圍像是,市場區隔、天文數據分析、基因分析、社群關係分析...)
除去機器學習之外還有強化學習(Reinforcement learning)
不過深度學習是算哪塊就不清楚了!!
監督式機器學習有兩類手法處理問題
迴歸
(應該就是以前 最小平方法 的那個,不過最小平方法是線性迴歸,有沒有非線性我也不知道)
(但從圖那一直線看來,講的也肯定是線性迴歸)
分類
非監督式機器學習...
PDF檔案內容較為簡略
除了雞尾酒派對演算法之外不清楚
看了影片評論之後,除了迴歸外出現了一堆奇怪的東西
像是 梯度下降(gradient descent,PDF檔好像沒看到)
PCA(principal component analysis,主要元件分析?)、ICA(I是獨立的)
由於是第一堂課,只做大概的介紹
所以還蠻輕鬆的
不過看影片的話
他們似乎想用的軟體是 Matlab跟Octave(一個配合Matlab使用的軟體)
若沒猜錯的話,關係類似 Python、SciPy這樣
那今天(9/29)應該就此結束