侧边栏壁纸
博主头像
云之彼端博主等级

行动起来,活在当下

  • 累计撰写 27 篇文章
  • 累计创建 6 个标签
  • 累计收到 2 条评论

目 录CONTENT

文章目录

tensorflow开发环境搭建

Administrator
2019-10-01 / 0 评论 / 0 点赞 / 62 阅读 / 5387 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2023-12-26,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。
tensorflow开发环境搭建

安装 python

需要安装64位版本python v3.7.4 64 bit
解压安装傻瓜式安装
安装完成后windows需要配置环境变量

安装pip

$ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py   # 下载安装脚本
$ python get-pip.py    # 运行安装脚本

安装虚拟环境 virtualenv

pip install virtualenv #使用pip安装 virtualenv

创建虚拟环境

虚拟环境的用处

  1. 与主机环境隔离。
  2. 每个虚拟环境都独立安装python模块,可以通过切换虚拟环境使用不同版本的python模块。

语法

virtualenv --system-site-packages -p python ./venv #创建名为venv的虚拟环境
cd venv #进入虚拟环境目录
cd Scripts #进入脚本目录
activate #执行虚拟环境激活命令
deactivate #退出虚拟环境

激活时会独立于主机的python独立安装一些初始模块 pip、wheel,使用

pip list

查看安装的模块及版本

安装Tensorflow

在激活的虚拟环境中使用

pip install tensorflow 

安装tensorflow的cpu版本,想要下载更多的版本可以使用

pip search Tensorflow

查询适合当前python版本的tensorflow版本
这里是官网的对tensorflow不同版本的解释

  • tensorflow - 仅支持 CPU 的最新稳定版(建议新手使用)
  • tensorflow-gpu - 支持 GPU 的最新稳定版(适用于 Ubuntu 和 Windows)
  • tf-nightly - 仅支持 CPU 的预览每夜版(不稳定)
  • tf-nightly-gpu - 支持 GPU 的预览每夜版(不稳定,适用于 Ubuntu 和 Windows)
  • tensorflow==2.0.0-rc1 - 仅支持 CPU 的预览 TensorFlow 2.0 测试版(不稳定)
  • tensorflow-gpu==2.0.0-rc1 - 支持 GPU 的预览 TensorFlow 2.0 测试版(不稳定,适用于 Ubuntu 和 Windows)

测试

python -c "import tensorflow as tf;print(tf.reduce_sum(tf.random.normal([1000, 1000])))"

如果成功执行这行代码,则安装成功

hello world

使用内置的手写数字训练集进行模型的训练

import tensorflow as tf # 导入tensorflow模块
mnist = tf.keras.datasets.mnist # 获取预置的mnist手写数据集

(x_train, y_train),(x_test, y_test) = mnist.load_data() # 获取预先划分好的训练集,测试集
x_train, x_test = x_train / 255.0, x_test / 255.0 # 对图片像素进行规范化 从[0,255]规整为[0,1]
#  创建一个训练模型
model = tf.keras.models.Sequential([
  tf.keras.layers.Flatten(input_shape=(28, 28)), # 输入层规定输入图片尺寸为28px × 28px
  tf.keras.layers.Dense(512, activation=tf.nn.relu),# 第一层神经元个数为512 使用relu作为激活函数
  tf.keras.layers.Dense(1024, activation=tf.nn.relu),# 第二层神经元个数为1024 同样使用relu作为激活函数
  tf.keras.layers.Dropout(0.2), # 随机失活层防止过拟合
  tf.keras.layers.Dense(10, activation=tf.nn.softmax) # 输出层 使用softmax激活函数进行分类
])
# 使用adam为优化器,sparse_categorical_crossentropy为loss计算函数
model.compile(optimizer='adam', 
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])
# 开始训练,进行100层迭代
model.fit(x_train, y_train, epochs=100)
# 使用测试数据集进行模型准确度评估
model.evaluate(x_test, y_test)

训练集的样本个数为60000,测试用样本个数为10000,训练进行时会有如下输出:

Epoch 87/100
60000/60000 [==============================] - 10s 174us/sample - loss: 0.0102 - acc: 0.9987
Epoch 88/100
60000/60000 [==============================] - 11s 175us/sample - loss: 0.0117 - acc: 0.9987
Epoch 89/100
60000/60000 [==============================] - 11s 180us/sample - loss: 0.0192 - acc: 0.9981
Epoch 90/100
60000/60000 [==============================] - 11s 178us/sample - loss: 0.0128 - acc: 0.9987
Epoch 91/100
60000/60000 [==============================] - 10s 174us/sample - loss: 0.0156 - acc: 0.9985
Epoch 92/100
60000/60000 [==============================] - 11s 180us/sample - loss: 0.0128 - acc: 0.9988
Epoch 93/100
60000/60000 [==============================] - 10s 172us/sample - loss: 0.0212 - acc: 0.9984
Epoch 94/100
60000/60000 [==============================] - 11s 185us/sample - loss: 0.0137 - acc: 0.9986
Epoch 95/100
60000/60000 [==============================] - 11s 177us/sample - loss: 0.0161 - acc: 0.9987
Epoch 96/100
60000/60000 [==============================] - 11s 179us/sample - loss: 0.0113 - acc: 0.9989
Epoch 97/100
60000/60000 [==============================] - 11s 180us/sample - loss: 0.0181 - acc: 0.9986
Epoch 98/100
60000/60000 [==============================] - 10s 169us/sample - loss: 0.0148 - acc: 0.9986
Epoch 99/100
60000/60000 [==============================] - 11s 177us/sample - loss: 0.0140 - acc: 0.9989
Epoch 100/100
60000/60000 [==============================] - 11s 179us/sample - loss: 0.0207 - acc: 0.9984

loss值和acc一般成反比,可以看出每一次迭代后模型对自己的评估。
然而这样的评估不一定准确,需要使用不参与训练的测试数据集进行评估。

10000/10000 [==============================] - 1s 53us/sample - loss: 0.6206 - acc: 0.9807

10000个测试样本的准确率为 98%,可以证明这个模型可以很好的区分手写数字了。

0

评论区