美文网首页
Apple Silicon的 PyTorch 解决方案

Apple Silicon的 PyTorch 解决方案

作者: BaronDu | 来源:发表于2022-06-29 16:32 被阅读0次

    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]
    

    相关文章

      网友评论

          本文标题:Apple Silicon的 PyTorch 解决方案

          本文链接:https://www.haomeiwen.com/subject/nctxbrtx.html