TensorFlow虚拟环境安装/pip install 与 conda install区别/jupyter kernel的添加与删除 您所在的位置:网站首页 c盘里的pagefilesys可以删除吗 TensorFlow虚拟环境安装/pip install 与 conda install区别/jupyter kernel的添加与删除

TensorFlow虚拟环境安装/pip install 与 conda install区别/jupyter kernel的添加与删除

2023-06-07 01:26| 来源: 网络整理| 查看: 265

起因

我自己的TensorFlow是gpu2.4版本的,用lstm模型训练几千个样本,每个epoch要90多秒,太慢。 看了下朋友的,她的只要加上一句

os.environ['CUDA_VISIBLE_DEVICES'] = '0'

这个就可以gpu加速,但我的不行。一看,她的是TensorFlow-gpu2.6版本,于是我也搞了个tf2.6虚拟环境,用来装2.6版本的gpu TensorFlow。 创建虚拟环境的过程想必大家都很熟

conda create env --name tf2.6#(base环境) activate tf2.6#(base环境) pip install tensorflow-gpu==2.6.0#(tf2.6环境) #将新建的tf2.6环境加入到jupyter的kernel里 pip install ipykernel#(tf2.6环境) python -m ipykernel install --name=tf-kernel(这个名字与虚拟环境的名字可以不一样)#(tf2.6环境) #删除无用的kernel jupyter kernelspec list#(base环境) jupyter kernelspec remove kernel_name#(base环境) #删除无用的虚拟环境 conda env list conda env remove --name env_name

一口气把相关会用到的命令全写上了,有需要直接复制。 但是我创建完发现anaconda/env/tf2.6只有一个conda-meta文件夹,而且这个文件夹里只有一个history文件。 所以哪些安装的包(pip install tensorflow)去哪了? 先搁下这个疑问,我在tf2.6中进入python环境import tensorflow 又是一连串的报错 鬼使神差地,我看到报错提醒里有pip 版本过低的提醒,于是升级了pip

pip install --upgrade pip

但还是该报错的报错,anaconda/env/tf2.6下仍然只有一个文件

虚拟环境中通过pip install安装的包究竟到哪去了?

通过不断地尝试和搜索,发现conda create env --name env_name时如果不指定python,那么pip install的包会放在 C:\Users\username\AppData\Roaming\Python\Python38\site-packages这个文件夹里,因为conda create env --name env_name创建的虚拟环境中的python是系统的python。 conda create env --name env_name python=3.8,如果后面指定一个python,则这个虚拟环境中的python是conda新安装的,通过pip install安装的包也会在Anaconda3\envs\tf\Lib\site-packages这个文件夹下。

参考:pip install 和conda install的区别 (这个发布有问题,每次编辑的时候这个链接都能看到,但是发布完预览这个网页链接就变成了文字,我真的服。) (参考博客链接:pip install和conda install区别 点不开的话直接复制这个网址https://www.zhihu.com/question/395145313/answer/2449421755 )

!值得注意的是,有时候报错的提醒里有叫你加上install的加上–user 以一个简单的轻量级的不依赖其他库的包simple-calc为例。 如果在虚拟环境中conda install simple-calc,那么这个包会放在Anaconda3\pkgs。 如果在虚拟环境中pip install simple-calc,那么这个包会放在Anaconda3\envs\tf\Lib\site-packages。 如果在虚拟环境中pip install --user simple-calc,那么这个包会放在C:\Users\username\AppData\Roaming\Python\Python38\site-packages。 当你pip list时,那些包有些是在Anaconda3\envs\tf\Lib\site-packages,有些是在C:\Users\username\AppData\Roaming\Python\Python38\site-packages,所以有时候会看见某个库有两个版本同时存在,这样也会造成很多包的不兼容。 实在是debug de烦了,我直接把AppData\Roaming\Python\Python38\site-packages这个目录下的包全都删了,然后删除那些有内在版本冲突的虚拟环境,新建了一个tf环境,安装的时候只用pip install,绝对不加–user。

tf-gpu安装问题

我当时一股脑去下载tensorflow-gpu2.6版本,完全忘记了tensorflow-gpu对cuda和cudnn版本的要求。 因为我之前是下载过tensorflow-gpu2.4版本的,因此电脑离的cuda和cudnn版本只能支持tensorflow-gpu2.4,就算安装了2.6版本也用不了。 经过这么一番折腾,我不仅没用用上gpu加速,反而把原来的环境搞得一团糟,连import tensorflow as tf 都一直报错。 把AppData\Roaming\Python\Python38\site-packages这个目录下的包全删了之后,新建了一个tensorflow-gpu2.4环境。 在这个环境里

pip install tensorflow-gpu==2.4.0 #进入python python import tensorflow as tf 成功 print(tf.test.is_built_with_cuda()) # 检查是否使用CUDA true print(tf.config.list_physical_devices('GPU')) 返回设备名

这一切都说明我花费两三天终于把新环境搭建好了 但是!还没投入使用,新问题又来了 因为我要训练的data是csv文件,所以我安装了pandas 但是pandas和tensorflow对numpy的版本都有要求,并且要求刚好有冲突。 pandas要求numpy大于等于1.20.3 tensorflow要求numpy=1.19.2 这样一来,怎么都没法构建和谐的环境。 突然,我想到了加–user可以把包放在c盘的AppData\Roaming\Python\Python38\site-packages里,并且这个路径下的包虚拟环境也是可以用的。 那这样是不是可以install两个numpy? 于是我在虚拟环境中

pip install numpy==1.19.2

ok,import tensorflow成功,利用tensorflow新建lstm模型也成功。但是import pandas报错。 接下来,在虚拟环境中

pip install --user numpy==1.20.3

这时我发现AppData\Roaming\Python\Python38\site-packages文件里多出了两个numpy文件夹。 再import pandas,成功。 import tensorflow,成功。 终于,环境大和谐!!



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有