Apple Silicon的 PyTorch 解決方案 (目前PyTorch 已經(jīng)更新支持啦M患铡) 愉快的使用原生支持吧
https://zhuanlan.zhihu.com/p/37175253
雖然Python 3.10更新了很多新特性鲁豪,包括switch。但是截止到2021.01.01 pytorch還不支持律秃。所以目前最佳的DL py環(huán)境還是在3.8.x和3.9.x爬橡。這里選擇更新的3.9.x,環(huán)境的選擇最好還是跟項(xiàng)目所需特定庫(kù)支持版本棒动,之前做wavelet的時(shí)候糙申,TaLib的版本只支持py3.6
。
此處特別說(shuō)明船惨,使用配置的是更新了Apple silicon的Macbook Pro 16 (M1 Max) 版本柜裸,因此所有包均需支持arm64。一下是我的解決方案粱锐。如果嫌麻煩疙挺,不想在本地跑且數(shù)據(jù)不敏感開業(yè)上云的話,怜浅,Kaggle铐然, Colab 和Colab pro 的付費(fèi)選項(xiàng)都是很好的選擇蔬崩。source activate py39-nlp
蘋果官方教程:
https://developer.apple.com/metal/tensorflow-plugin/
Tensorflow GPU for Apple Silicon
Step 1: Environment setup
arm64 : Apple Silicon----Download and install Conda env:
chmod +x ~/Downloads/Miniforge3-MacOSX-arm64.sh
sh ~/Downloads/Miniforge3-MacOSX-arm64.sh
source ~/miniforge3/bin/activate
Install the TensorFlow dependencies:
conda install -c apple tensorflow-deps
Step 2: Install base TensorFlow
python -m pip install tensorflow-macos
NOTE: If using conda environment built against pre-macOS 11 SDK use:
SYSTEM_VERSION_COMPAT=0 python -m pip install tensorflow-macos
otherwise you will get errors like : “not a supported wheel on this platform”
Step 3: Install tensorflow-metal plugin
python -m pip install tensorflow-metal
Set Kaggle API
這里有詳細(xì)教程,設(shè)置好API后可以從搀暑,colab或者本地上傳competition的結(jié)果沥阳。
https://github.com/Kaggle/kaggle-api
chmod 600 /Users/baron/.kaggle/kaggle.json
環(huán)境內(nèi)所需包
Mamba 里能支持arm64的包
Source: conda-forge/noarch
Source: conda-forge/osx-arm64
- kaggle
- scikit-learn
pip包
- coremltools
Mamba update --all
顯示隱藏
command+shift+.
1 訓(xùn)練時(shí)
model = Word2Vec(x, size=250, window=5, min_count=5, workers=12, iter=10, sg=1)
這句代碼一直報(bào)錯(cuò) 查了發(fā)現(xiàn) size和iter依然是時(shí)代的眼淚了。改成下面
model = Word2Vec(x, vector_size=250, window=5, min_count=5, workers=12, epochs=10, sg=1)
2:遍歷這個(gè) 模型時(shí) 使用的代碼
for i, word in enumerate(self.embedding.wv.vocab)
一直報(bào)錯(cuò) ,查官網(wǎng) 改成了index_to_key自点,
for i, word in enumerate(self.embedding.wv.index_to_key):
3: 罪大惡極的錯(cuò)誤 'Word2Vec' object is not subscriptable
我用的是
model['word']
這句話 ,來(lái)查詢單詞對(duì)應(yīng)的向量桐罕,以前好像大家都這樣用, 今天一直提示我錯(cuò)誤 桂敛。經(jīng)過(guò)長(zhǎng)時(shí)間的查詢(而且是從其他路徑查詢的)功炮,發(fā)現(xiàn)已經(jīng)變?yōu)榱?/p>
self.embedding.wv[word]