1.TensorFlow快速入门
TensorFlow 2.0前言Tensorflow是Google推出的机器学习开源神器,对Python有着良好的语言支持,支持CPU,GPU和Google TPU等硬件,并且已经拥有了各种各样的模型和算法。目前,Tensorflow已被广泛应用于文本处理,语音识别和图像识别等多项机器学习和深度学习领域。基础框架分为三层:应用层、接口层和核心层。应用层:提供了机器学习相关的训练库、预测库和针对Py
TensorFlow 2.0
前言
Tensorflow是Google推出的机器学习开源神器,对Python有着良好的语言支持,支持CPU,GPU和Google TPU等硬件,并且已经拥有了各种各样的模型和算法。目前,Tensorflow已被广泛应用于文本处理,语音识别和图像识别等多项机器学习和深度学习领域。基础框架分为三层:应用层、接口层和核心层。
应用层:提供了机器学习相关的训练库、预测库和针对Python、C++和Java等变成语言的编程环境,类似于web系统的前端,主要实现了对计算图的构造。
接口层:对Tensorflow功能模块的封装,便于其它语言平台的调用。
核心层:最重要的部分,包括设备层、网络层、数据操作层和图计算层,执行应用层的计算。
- 设备层:包括Tensorflow在不同硬件设备上的实现,主要支持CPU、GPU和Mobile等设备,在不同硬件设备上实现计算命令的转换,给上层提供统一的接口,实现程序的跨平台功能。
- 网络层:网络层主要包括RPC和RDMA通信协议,实现不同设备之间的数据传输和更新,这些协议都会在分布式计算中用到。
- 数据操作层:以tensor为处理对象,实现tensor的各种操作和计算。
- 图计算层:包括分布式计算图和本地计算图的实现,实现图的创建、编译、优化和执行等。
面对初学者的快速入门
我们首先将TensorFlow 2.0安装的电脑中,我用的是Jupyter Notebook,来实现下述代码的。我们首先将TensorFlow载入到程序,然后载入并准备好MNIST测试集。将样本从整数转换为浮点数。将模型的各层堆叠起来,以搭建tf.keras.Sequential模型,以训练选择优化器和损失函数,最后进行训练并验证模型。
import tensorflow as tf #程序中引入tensorflow库
以下代码为数据集的引入:
mnist = tf.keras.datasets.mnist #引入数据集
(x_train, y_train), (x_test, y_test) = mnist.load_data()
x_train, x_test = x_train/255.0, x_test/255.0
model = tf.keras.models.Sequential([
tf.keras.layers.Flatten(input_shape=(28,28)),
tf.keras.layers.Dense(128, activation='relu'),
tf.keras.layers.Dropout(0.2),
tf.keras.layers.Dense(10, activation='softmax')
])
model.compile(optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
tf.keras.models.Sequential()用法
tf.keras.models.Sequential([网络结构])#描述各层的网络
网络结构举例:
①拉直层:tf.keras.layers.Flatten()# 拉直曾可以变换张量的尺寸,把输入特征拉直为一维数组,其不含计算参数。
②全连接层tf.keras.layers.Dense(神经元的个数, activation=‘激活函数’,kernel_regularizer=‘正则化方式’)
③tf.keras.layers.Dropout()为将Dropout应用到输入,其有三个参数。
model.fit(x_train, y_train, epochs=5)
model.evaluate(x_test, y_test, verbose=2)
Epoch 1/5
1875/1875 [==============================] - 4s 2ms/step - loss: 0.0669 - accuracy: 0.9783
Epoch 2/5
1875/1875 [==============================] - 4s 2ms/step - loss: 0.0604 - accuracy: 0.9808
Epoch 3/5
1875/1875 [==============================] - 5s 2ms/step - loss: 0.0551 - accuracy: 0.9822
Epoch 4/5
1875/1875 [==============================] - 4s 2ms/step - loss: 0.0502 - accuracy: 0.9836
Epoch 5/5
1875/1875 [==============================] - 4s 2ms/step - loss: 0.0449 - accuracy: 0.9853
313/313 - 1s - loss: 0.0682 - accuracy: 0.9802 - 600ms/epoch - 2ms/step
[0.06823256611824036, 0.9801999926567078]
model.fit(训练集的输入特征,训练集的标签,batch_size #每个batch的大小,epochs,#迭代次数,validation_data=(测试集的输入特征,测试集的标签),validation_split=从测试集中划分多少比例给训练集,validation_freq=测试的epoch间隔数)#用于执行训练过程
model.evaluate(输入测试数据, 真实标签,控制日志显示的方式(verbose:'0’不在标准输出流输出日志信息’1’输出进度条记录’2’每个epoch输出一行记录,默认值为1) )
更多推荐



所有评论(0)