Apple Silicon的 PyTorch 解决方案 (目前PyTorch 已经更新支持啦!) 愉快的使用原生支持吧
https://zhuanlan.zhihu.com/p/37175253
虽然Python 3.10更新了很多新特性,包括switch。但是截止到2021.01.01 pytorch还不支持。所以目前最佳的DL py环境还是在3.8.x和3.9.x。这里选择更新的3.9.x,环境的选择最好还是跟项目所需特定库支持版本,之前做wavelet的时候,TaLib的版本只支持py3.6
。
此处特别说明,使用配置的是更新了Apple silicon的Macbook Pro 16 (M1 Max) 版本,因此所有包均需支持arm64。一下是我的解决方案。如果嫌麻烦,不想在本地跑且数据不敏感开业上云的话,,Kaggle, Colab 和Colab pro 的付费选项都是很好的选择。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
这里有详细教程,设置好API后可以从,colab或者本地上传competition的结果。
https://github.com/Kaggle/kaggle-api
chmod 600 /Users/baron/.kaggle/kaggle.json
环境内所需包
Mamba 里能支持arm64的包
Source: conda-forge/noarch
Source: conda-forge/osx-arm64
- kaggle
- scikit-learn
pip包
- coremltools
Mamba update --all
显示隐藏
command+shift+.
1 训练时
model = Word2Vec(x, size=250, window=5, min_count=5, workers=12, iter=10, sg=1)
这句代码一直报错 查了发现 size和iter依然是时代的眼泪了。改成下面
model = Word2Vec(x, vector_size=250, window=5, min_count=5, workers=12, epochs=10, sg=1)
2:遍历这个 模型时 使用的代码
for i, word in enumerate(self.embedding.wv.vocab)
一直报错 ,查官网 改成了index_to_key,
for i, word in enumerate(self.embedding.wv.index_to_key):
3: 罪大恶极的错误 'Word2Vec' object is not subscriptable
我用的是
model['word']
这句话 ,来查询单词对应的向量,以前好像大家都这样用, 今天一直提示我错误 。经过长时间的查询(而且是从其他路径查询的),发现已经变为了
self.embedding.wv[word]