下载包用清华镜像:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple some-package
每个论文的代码都要创建一个新的环境,
为Interfusion建的环境是 pytorch_gpu。
调试中遇到的坑:
1、tensorflow import错误—装了个2.0.0版本;
2、protobuf错误–按照提示换成3.19.0版本;
3、ModuleNotFoundError: No module named ‘tfsnippet‘–因为没有安装以下requirement.txt要求的
git+https://github.com/thu-ml/zhusuan.git@48c0f4e
git+https://github.com/haowen-xu/tfsnippet.git@v0.2.0-alpha4
git+https://github.com/haowen-xu/ml-essentials.git
进入这几个网址可以看到,ZhuSuan是一个用于贝叶斯深度学习的 Python 概率编程库,它结合了贝叶斯方法和深度学习的互补优势。ZhuSuan 建立在 TensorFlow之上。与现有的主要为确定性神经网络和监督任务设计的深度学习库不同,ZhuSuan 提供了深度学习风格的原语和算法,用于构建概率模型和应用贝叶斯推理; TFSnippet 是一组用于编写和测试 TensorFlow 模型的实用程序。TFSnippet 的设计理念是不干涉。它旨在提供一组有用的实用程序,可以与任何其他 TensorFlow 库和框架一起使用; ml-essentials是一套用于日常机器学习实验的基本工具包。
运行第一个git报错
按照提示换命令行
前两个成功,第三个报错;
观察到前两个下载的文件都在interfusion文件夹下自动创建了文件夹,所以直接把第三个包从github上下载下来,然后粘贴到服务器上
但是还是报错No module named ‘tfsnippet’,是因为应该把这几个文件夹放到和stack_train.py文件的同目录下
换了路径,又报了其他错
pip install安装不成功,要conda install(感谢邻桌小姐姐)
pip是用来安装python包的,安装的是python wheel或者源代码的包。从源码安装的时候需要有编译器的支持,pip也不会去支持python语言之外的依赖项。
conda是用来安装conda package,虽然大部分conda包是python的,但它支持了不少非python语言写的依赖项,比如mkl cuda这种c c++写的包。然后,conda安装的都是编译好的二进制包,不需要你自己编译。所以,pip有时候系统环境没有某个编译器可能会失败,conda不会。这导致了conda装东西的体积一般比较大,尤其是mkl这种,动不动几百兆甚至一G多。
然后,conda功能其实比pip更多。pip几乎就是个安装包的软件,conda是个环境管理的工具。conda自己可以用来创建环境,pip不能,需要依赖virtualenv之类的。意味着你能用conda安装python解释器,pip不行。这一点我觉得是conda很有优势的地方,用conda env可以很轻松地管理很多个版本的python,pip不行。
之后,多次运行stack_train文件,根据报错缺少的模块,不断conda install 包。
安装yaml包的时候conda install yaml之后,还是报错说没有这个模块,原来是要安装pyyaml才行,
报错
注意到频频报错是因为上面安装的三个大组件里有依赖包没有装
直接用txt文件装
用清华镜像链接pip install瞬间快了好多
安装过程出现了一个错误隐患,先不管。
requirements-docs要求安装tensorflow == 1.5.0,没有这么低的版本,于是装了个1.13.1.
终于不报缺少上面三个包里的模块的错了
但还是有错。查找文件是从stack_train.py这个文件所在的文件夹出发的,所以找不到algorithm,直接在代码里改一下import的路径。
mltk有两层找不到,把里层的mltk拎出来,复制到和代码同路径
找不到explib
添加相对路径到系统变量中,就可以找到了。其实上面那个algorithm的问题也可以这样解决。
这个链接有import的详细用法 https://www.jianshu.com/p/5a02285bb111
终于跑起来啦!
CTRL+Z暂停程序,然后挂到后台运行
win10 pycharm版本:
因为我的python是3.9的,有个包装不上;
在win10的pycharm中配置运行此程序。
把下载的三个包内层同名文件夹复制到和algorithm文件夹同级的文件夹中。
安装tensorflow包
但是转了半天安装不上,于是百度得知
pycharm运行tensorflow代码依然报错
报错原因:
所用到的python解释器和我们当前PyCharm所用的python解释器不一致.
解决方案: 将PyCharm的解释器更改为TensorFlow下的python解释器即可。
查看Python路径:
先查看当前pycharm的解释器(pyhton3.9)所在的路径,因为都是conda安装的,应该都是在anaconda的安装目录下,而本次安装的python3.6又是在虚拟环境tensorflow中的。
把解释器换成这个路径。创建虚拟环境,上面是个保存虚拟环境的空目录,下面是tensorflow-python3.6.2的路径。
创建成功后确保现在用的是这个环境。
还是报错,找不到numpy和tensorflow包,直接点击加号安装包。同样地,依次安装其他包。
总结:原来的python3.9和tensorflow不兼容,所以在anaconda3中额外创建了一个使用python3.6的tensorflow环境,加载这个路径可以提供python解释器。而在具体到某个代码项目的时候,又创建了一个…/InterFusion-main/env存储这个项目的虚拟环境,其中需要的所有的包可以通过加号安装,那么同理如果运行其他tensorflow项目,可以再创建一个新环境,解释器还选这个,环境保存在一个新的空目录里,需要什么包同样可以加号添加到对应的虚拟环境里。
报错:提示需要cuda,需要gpu。尝试安装tensorflow-gpu。
安装失败