tensorflow2.0深度学习开发环境搭建(ubuntu/win10)

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分类器

 

一、 tensorflow2.0深度学习开发环境搭建

本方案通过anaconda对开发环境进行管理,通过conda创建tensorflow开发环境:anaconda+tensorflow+cuda10.0+cudnn7.5.1+jupyter notebook。

1.安装Anaconda进行开发环境管理

1.1 Anaconda简述

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 Anaconda下载及安装方法

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安装方法相同

2. 安装tensorflow2.0预览版

2.1 更换软件源:避免下载速度过慢或无法下载

    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

2.1安装或更新NVIDIA驱动

(已安装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,若成功可得到以下信息。

tensorflow2.0深度学习开发环境搭建(ubuntu/win10)_第1张图片

!!!此后步骤与系统无关!!!

2.3创建tensorlfow开发环境(环境名称:tf2)

#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/

2.4 安装IDE:jupyter notebook

#step1: Ctr+Alt+T打开命令行,进入虚拟环境
conda activate tf2

#step2:安装jupyter notebook
conda install jupyter notebook

2.5 安装opencv

#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 测试

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

tensorflow2.0深度学习开发环境搭建(ubuntu/win10)_第2张图片

3.参考及学习资料

1.更换软件源:https://blog.csdn.net/dream_allday/article/details/80344511

tensorflow2中文教程:https://github.com/czy36mengfei/tensorflow2_tutorials_chinese

你可能感兴趣的:(深度学习tensorflow)