Tensorflow 入门手册(代码与原理释义)

 

 

·人工智能与深度学习

      -人工智能={机器学习,........else}

      -机器学习={深度学习(表示学习),........else}

·神经网络

·卷积神经网络(Convolutional Neural Networks)CNN

     -包含卷积层的神经网络、擅长处理图像

     -常见网络 LeNet 、 AlexNet 、 VGG16 、 GoogleNet 、 ResNet

·循环神经网络(Recurrent Neural Network)RNN

     -为处理时序数据而设计的,例如一段文字或语音

     -常见网络:长短期记忆(long short-term menory,LSTM)

Tensorflow 入门手册(代码与原理释义)_第1张图片

tensorflow 的一些常用代码理解

Tensorflow 入门手册(代码与原理释义)_第2张图片

Tensorflow 入门手册(代码与原理释义)_第3张图片

Tensorflow 入门手册(代码与原理释义)_第4张图片

 Tensorflow 入门手册(代码与原理释义)_第5张图片Tensorflow 入门手册(代码与原理释义)_第6张图片

Convolution - 卷积层

Average pooling  平均池化 (也可以最大值池化)

full connection 全连接层

 

 

核心步骤一——卷积

Tensorflow 入门手册(代码与原理释义)_第7张图片

核心步骤二——池化(下采样)

Tensorflow 入门手册(代码与原理释义)_第8张图片

 

核心步骤三——激活函数

Tensorflow 入门手册(代码与原理释义)_第9张图片

 

七层模型:

1、第一层卷积层

Tensorflow 入门手册(代码与原理释义)_第10张图片

·卷积后的大小   32-5+1=28

2、第二层池化层

Tensorflow 入门手册(代码与原理释义)_第11张图片

3、第三层二次卷积

Tensorflow 入门手册(代码与原理释义)_第12张图片

4、第四次二次池化

Tensorflow 入门手册(代码与原理释义)_第13张图片

5、第五层全连接卷积层

Tensorflow 入门手册(代码与原理释义)_第14张图片

 

6、第六层全连接层

Tensorflow 入门手册(代码与原理释义)_第15张图片

7、第七层全连接层(输出层)

Tensorflow 入门手册(代码与原理释义)_第16张图片

tensorflow模型类:model类使用例程网站 

 

Tensorflow 入门手册(代码与原理释义)_第17张图片

·如何实例化一个模型 

Tensorflow 入门手册(代码与原理释义)_第18张图片

model.summary() #模型展示

 

 tensorflow模型类:sequencial类使用例程网站 

Tensorflow 入门手册(代码与原理释义)_第19张图片

lenet第一层:tensorflow的卷积类Tensorflow 入门手册(代码与原理释义)_第20张图片

lenet第二层:tensorflow池化类

Tensorflow 入门手册(代码与原理释义)_第21张图片

 

padding的两种方法,valid代表去除多余的列,same代表补齐

Tensorflow 入门手册(代码与原理释义)_第22张图片

 

lenet第三层和第四层:tensorflow卷积+池化层编码

 

Tensorflow 入门手册(代码与原理释义)_第23张图片

 lenet转化层:连接前面四层与后面全连接层的扁平化类

 

Tensorflow 入门手册(代码与原理释义)_第24张图片

 lenet第五层:全连接类

 

Tensorflow 入门手册(代码与原理释义)_第25张图片

lenet第五六七层编码:

Tensorflow 入门手册(代码与原理释义)_第26张图片

-这里最后一层使用softmax归一化函数

 lenet各层编码:

Tensorflow 入门手册(代码与原理释义)_第27张图片

 lenet模型的训练设置

Tensorflow 入门手册(代码与原理释义)_第28张图片

超参数设置

epoch:训练轮数

batch_size:批大小

learning_rate:学习率

深度学习中,主要调整以上参数

 

优化器:优化算法

adam_optimizer = tf.keras.optimizers.Adam(learning_rate)

 

编译模型 

model.compile(optimizer=adam_optimizer,       loss=tf.keras.losses.sparse_categorical_crossentropy,       metrics=['accuracy'])

 

训练模型

x, # 训练数据

y, # 训练数据的标签

batch_size,  # 批大小

epochs # 训练遍数(轮数)

根据参数开始训练:model.fit(x=x_train, y=y_train, batch_size=batch_size,     epochs=num_epochs) 

 

保存模型

filepath, # 保存路径
from google.colab import drive drive.mount('/gdrive') #使用colab时的保存代码

model.save('/gdrive/My Drive/AI/model/lenet_model.h5')

 

加载模型

预测时需要加载保存好的模型

 filepath, # 模型路径
model = tf.keras.models.load_model('/gdrive/My Drive/AI/model/lenet_model.h5')

 

预测模型 

 x, # 输入数据
pred = model.predict(x_test[image_index].reshape(1, 32, 32, 1)) #将测试集以四维结构输入,得到0-9的概率

print(pred.argmax())#打印最大概率的对应数字

 

 

你可能感兴趣的:(Python,Python,tensorflow)