利用Anaconda3安装tensorflow/keras,并迁移虚拟环境至不能上网的电脑

利用Anaconda3安装tensorflow/keras,并迁移虚拟环境至不能上网的电脑

下面记录下利用Anaconda安装tensorflow和keras,前前后后也踩了不少坑。并分别在windows系统和linux系统下将能上网的电脑下安装的tensorflow虚拟环境迁移至不能上网的环境下。

1、安装系统环境和安装包

centOS7
Anaconda3-5.1.0
TensorFlow 2.1.0
Keras 2.3.1

2、在能上外网的系统中安装anaconda/tensorflow/keras

2.1 先在能上外网电脑中安装anaconda

在linux系统下,我是用vmware装的centos7,注意每次重启前确认“服务”中与VMWare相关的服务处于开启状态。若在linux系统中,若安装anaconda时没有添加启动路径,需要自己手动添加启动路径:

vi /root/.bashrc
export PATH="/usr/bin/:$PATH:/root/training/anaconda3/bin:/root/training/anaconda3/condabin"

2.2 conda的一些常用命令

# 切换虚拟环境
source activate base  # linux系统
activate base # windows系统

# 切换至普通环境:
source deactivate base  # linux系统
deactivate base  # windows系统

# 查看虚拟环境
conda info --envs

# 查看该虚拟环境下面所有的包
conda list
# 查看某一个包
conda list pkg_name

# 清除conda缓存
conda clean --all

# 创建虚拟环境
conda create -n env_name 

# 复制虚拟环境base
conda create -n env_name --clone base

# 删除虚拟环境
conda remove -n env_name --all

# conda安装包, 相比于pip, 它检查兼容性更优,但下载速度或者下载源的问题,我基本没有成功过
conda install tensorflow==2.1.0

# conda升级包
condad upgrade pck_name

2.3 更改pip下载源:

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

# 生成的配置文件路径:C:\Users\cheny\AppData\Roaming\pip\pip.ini

或在C:\Users\cheny\pip路径下新建pip.ini文件:

[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
[install]
trusted-host = pypi.tuna.tsinghua.edu.cn

2.4 新建tensorflow虚拟环境

conda create -n tensorflow python=3.6

2.5 安装tensorflow和keras

# 版本号要与环境中的python版本兼容,且tensorflow版本要与keras版本兼容
pip install tensorflow==2.1.0
pip install keras==2.3.1

# 环境需要的其它包,版本号与虚拟环境base中一致,避免后续冲突
pip install pandas==0.22.0
pip install matplotlib==2.1.2
pip install scikit-learn==0.19.1
pip install scikit-image==0.13.1
pip install seaborn==0.8.1

# 这里推荐使用pip安装,网上很多使用conda安装,实际效果就是一致等待,我反正是没成功过。
# 之前一直想先复制base虚拟环境,再在该环境上安装tensorflow,结果由于有的包需要升级,升级卸载时会报错(如wrap包),后面还不如重新从基础python装起。

2.6 tensorflow相关的网站

# anaconda清华镜像站
https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/

# anaconda官网:各版本介绍
https://docs.anaconda.com/free/anaconda/reference/packages/oldpkglists/

# Tensorflow和Keras版本对照及环境安装
https://blog.csdn.net/Strive_For_Future/article/details/126587222

3、虚拟环境复制迁移

3.1 将虚拟环境tensorflow从一台能上网的电脑迁移至另一台不能上网的服务器, 首先两台电脑先安装好同一种版本的Anaconda。

3.2 windows系统和linux系统下,虚拟环境迁移方法类似。

1)在源电脑上,切换至tensorflow虚拟环境,安装conda-pack

conda install -c conda-forge conda-pack  # conda-forge是下载源

2)打包迁移虚拟环境

(tensorflow) C:\Users\cheny>conda pack -n tensorflow

# 完成后在C:\Users\cheny目录下生成文件tensorflow.tar.gz

3)拷贝文件tensorflow.tar.gz至不能上网服务器

4)进入envs目录,新建目录tensorflow,并进行以下操作

windows系统:

# cmd进入envs目录
# 新建tensorflow目录
# 解压,注意这里不能用windows自带的解压软件
C:\software\Anaconda3\envs> tar -xzf tensorflow.tar.gz -C tensorflow

# 打开Anaconda Promot
# 可以发现虚拟环境tensorflow已经加入
(base) C:\Users\User>conda info --envs
# conda environments:
#
base                  *  C:\software\Anaconda3
tensorflow               C:\software\Anaconda3\envs\tensorflow

# 激活tensorflow虚拟环境
(base) C:\Users\User>activate tensorflow
# 运行conda-unpack清除前缀
(tensorflow) C:\Users\User>conda-unpack

linux系统:

# 进入envs目录
(base) [root@bigdate envs]# mkdir -p tensorflow
(base) [root@bigdate envs]# tar -xzf tensorflow.tar.gz -C tensorflow
# 激活tensorflow虚拟环境
(base) [root@bigdate envs]# source activate tensorflow
# 运行conda-unpack清除前缀
(tensorflow) [root@bigdate envs]# conda-unpack

后经自己对比测试,windows环境下的迁移,表面上看没啥问题,但运行tensorflow项目会报错,因此建议只做linux环境下的虚拟环境迁移;windows环境下还是老老实实在线安装吧。

4、将h5py版本从3.1.0降级至2.10.0

当使用load_model(model_save_path)加载保存的***.h5模型时,会出现报错:

Traceback (most recent call last):
  File "/root/software/anaconda3/envs/tensorflow/lib/python3.6/site-packages/keras/engine/saving.py", line 584, in load_model
    model = _deserialize_model(h5dict, custom_objects, compile)
  File "/root/software/anaconda3/envs/tensorflow/lib/python3.6/site-packages/keras/engine/saving.py", line 273, in _deserialize_model
    model_config = json.loads(model_config.decode('utf-8'))
AttributeError: 'str' object has no attribute 'decode'
# 由于h5py在2.10版本中,字符串的存储是经过编码的,而在3.0.0的版本中,则不会检查是否经过编码,所以会报错。解决方法:降级至2.10.0版本
pip install 'h5py==2.10.0' --force-reinstall

5、离线安装PyMySQL

激活tensorflow虚拟环境,并切换至PyMySQL目录下安装。

python setup.py install
posted @ 2023-07-19 13:52  Steven0325  阅读(207)  评论(0编辑  收藏  举报