Table of Contents
前言:
一、 tensorflow2.0深度学习开发环境搭建
1.安装Anaconda进行开发环境管理
2. 安装tensorflow2.0预览版
了解到tensorflow2.0的大幅度调整后,刚上手的tensorflow1+也没有心情继续学习了,同事也转向学习新出的pytorch1.0了,但tensorflow完善的生态及goolge大牛的背景,依旧没有放弃tensorflow。之前学习时一直没有记录,掉过的坑,踩过的雷时间一久,依旧还是猝不及防,所以这一次决心通过博客记录这个学习历程,也希望可以帮助到其他学习者。
学习记录:
1. tensorflow2.0深度学习开发环境搭建(ubuntu/win10)
2. 项目实战1:TF2.0+LetNet-5构建Fasion MNSIT分类器
3. 项目实战2:TF2.0+AlexNet构建Fasion MNSIT分类器
4. 项目实战3:TF2.0+VGG-16构建Fasion MNIST分类器
5. 项目实战4:TF2.0+ResNet构建Fasion MNIST分类器
5. 项目实战5:TF2.0+mobilieNet构建Fasion MNIST分类器
本方案通过anaconda对开发环境进行管理,通过conda创建tensorflow开发环境:anaconda+tensorflow+cuda10.0+cudnn7.5.1+jupyter notebook。
Anaconda 是 Python 的一个开源发行版本。anaconda 里面集成了很多关于 python 科学计算的第三方库,主要面向科学计算且安装方便,而 python 是一个编译器,如果不使用 anaconda,那么安装起来会比较痛苦,各个库之间的依赖性就很难连接的很好。Anaconda 提供一个管理工具 conda ,可以把 conda 看作是 pip + virtualenv +PVM (Python Version Manager) + 一些必要的底层库,也就是一个更完整也更大的集成管理工具。在我看来主要优点是预装了很多第三方库,而且Anaconda中增加了conda install命令,安装新package格外方便,还自带Spyder IDE 和Jupyter Notebook等开发工具,是初学者不再需要在开发环境上花太多功夫;同时为避免太多额外的的开发包被安装,增加系统内存消耗,也可以选择Miniconda,Miniconda只包括python与conda,而其余的库件可以通过手动安装。
1.2.1 Anaconda安装
ubuntu系统下:
(1)下载链接:https://www.anaconda.com/distribution/,下载自己所需的安装包
(2)进入保存目录,打开命令行输入:bash ~/Anaconda3-2019.03-Linux-x86_64.sh
(3)在安装过程中需要通过ENTER键跳过提示,注意在提示选择时键入“yes”,直至安装完成
win10系统下:
(1)下载链接:https://www.anaconda.com/distribution/,下载自己所需的.exe安装包,双击进行安装即可
(2)将anaconda添加至环境变量
1.2.2 Miniconda安装
(1)下载链接:https://conda.io/en/latest/miniconda.html
(2)安装方法与Anaconda安装方法相同
ubuntu系统(此处选用清华源):
step1:命令行执行以下指令
vim ~/.condarc
step2:在文件中添加以下内容
channels:
- https://mirrors.ustc.edu.cn/anaconda/pkgs/main/
- https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
- defaults
show_channel_urls: true
win10系统:命令行执行以下指令
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
# 设置搜索时显示通道地址
conda config --set show_channel_urls yes
(已安装nvidia驱动的可略过!,版本不是cuda10.0相应的,后期可能出现一下错误输出:)
Status: CUDA driver version is insufficient for CUDA runtime version
本方案计划安装gpu版本的tensorflow2.0,cuda版本需要大于cuda-10.0,需要安装相应的nvidia驱动,具体步骤为:
(1)首先去官网上查看适合你GPU驱动的版本号,如1050Ti对应的最新驱动为418.56。查询网址:https://www.nvidia.cn/Download/index.aspx?lang=cn
(2) (ubuntu)打开终端,分别执行以下命令:
sudo apt-get remove --purge nvidia* (卸载:若已安装过驱动需要先卸载)
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
sudo apt-get install nvidia-418
sudo apt-get install mesa-common-dev
sudo apt-get install freeglut3-dev
(3) 执行完上述后,重启(reboot)
(4) 查看nvidia驱动是否安装成功,打开终端输入:nvidia-smi或nvidia-settings,若成功可得到以下信息。
!!!此后步骤与系统无关!!!
#step1:利用conda创建一个tensorflow的开发环境:打开命令行,输入(tensorflow与python3.5兼容比较好):
conda create -n tf2 python=3.5 (删除环境:conda remove -n tensorflow --all)
#step2:激活tensorflow2.0的开发环境(tf2)
conda activate tf2
#step3:对于GPU版的安装,为保证不论原始linux环境是什么样的都可以安装
conda install cudatoolkit=10 cudnn=7.3
#step4:安装tensorflow2.0预览版
pip install tf-nightly-gpu-2.0-preview
#如果上诉安装提示错误,可尝试一下命令
pip install tensorflow-gpu==2.0.0-alpha0
注意事项:
由于tensorflow版本较新(仅支持cuda>10),在gpu版本运行tensorflow工程时,会出现:
Loaded runtime CuDNN library: 7.3.1 but source was compiled with: 7.4.2.
提示cudnn版本过低(需大于7.4.2),而目前conda软件源中cudnn的最新的版本只有7.3.1(可通过指令:conda search cudnn进行查询),为解决这个问题,可去官网下载与cuda相对应最新的cudnn库文件,并进入通过conda创建的虚拟环境中替换对应的文件,具体操作如下:
(1)cudnn下载网址(需注册nvidia账号):https://developer.nvidia.com/cudnn
(2)解压“cudnn-10.0-linux-x64-v7.5.1.10.tgz”得到cuda文件夹,进入cuda文件夹,并在当前路径打开命令行
#step1:删除虚拟环境中旧版本的cudnn库文件
sudo sudo rm -rf /home/username/anaconda3/envs/tf2/lib/libcudnn*
sudo sudo rm -rf /home/username/anaconda3/envs/tf2/include/cudnn.h
#step2:复制当前版本的cudnn库文件到虚拟环境中
sudo cp lib64/libcudnn* /home/username/anaconda3/envs/tf2/lib/
sudo cp include/cudnn.h /home/username/anaconda3/envs/tf2/include/
#step1: Ctr+Alt+T打开命令行,进入虚拟环境
conda activate tf2
#step2:安装jupyter notebook
conda install jupyter notebook
#step1: Ctr+Alt+T打开命令行,进入虚拟环境
conda activate tf2
#step2: 安装opencv
conda install opencv3
有没有发现有了conda开发环境管理软件,配置环境简直不要太easy!
step1(进入虚拟开发环境):conda activate tf2
step2(安装软件或开发库):conda install "libname" OR pip install "libname"
step3(卸载软件或开发库):conda uninstall "libname" OR pip uninstall "libname"
2.6.1 编写测试代码
简单编写一个程序:随机产生训练和验证数据,通过构建的神经网络模型进行训练测试(程序本身没有实际意义,仅为验证环境安装正确)
import numpy as np
import tensorflow as tf
from tensorflow.keras import layers
print(tf.__version__)
print(tf.keras.__version__)
model = tf.keras.Sequential()
model.add(layers.Dense(32, activation='relu'))
model.add(layers.Dense(32, activation='relu'))
model.add(layers.Dense(10, activation='softmax'))
model.compile(optimizer=tf.keras.optimizers.Adam(0.001),
loss=tf.keras.losses.categorical_crossentropy,
metrics=[tf.keras.metrics.categorical_accuracy])
train_x = np.random.random((1000, 72))
train_y = np.random.random((1000, 10))
val_x = np.random.random((200, 72))
val_y = np.random.random((200, 10))
dataset = tf.data.Dataset.from_tensor_slices((train_x, train_y))
dataset = dataset.batch(32)
dataset = dataset.repeat()
val_dataset = tf.data.Dataset.from_tensor_slices((val_x, val_y))
val_dataset = val_dataset.batch(32)
val_dataset = val_dataset.repeat()
model.fit(dataset, epochs=10, steps_per_epoch=30,
validation_data=val_dataset, validation_steps=3)
2.6.2 执行程序(脚本运行方式)
#step1-打开终端: Ctrl + Alt + t
#step2-激活开发环境: conda activate tf2
#step3-进入文件目录:cd file_path
#step4-执行相应文件:python targetfile
1.更换软件源:https://blog.csdn.net/dream_allday/article/details/80344511
tensorflow2中文教程:https://github.com/czy36mengfei/tensorflow2_tutorials_chinese