你是否苦恼看到一个神经网络结构图却不知如何将其转变成python代码?恭喜你来对地方了。
当你看到一个神经网络结构图的时候,你最先思考的是什么?别一头扎进去看结构图的细节,你会很晕。
你先看看输入和输出是什么。如果刚好只有一个输入和只有一个输出,恭喜你,使用Sequential按层顺序搭建可以满足你的需求。
实际上,Sequential按层顺序搭建神经网络是另外两种搭建神经网络方法的基础,所以理解好这个很重要。另外两种方法会在下面的博客里更新,欢迎关注哦。
使用Sequential按层顺序搭建神经网络你需要哪些东西呢,我们需要别人家写好的现成的层对象,然后通过堆叠这些层对象来搭建自己的网络。
现成的层对象有哪些呢?请看下图,tensorflow2.0已经帮我们全部准备好了,下图只是举例说明,详情可以看我另外一篇博客都2020年了,汇总tf.keras模型层layers都有哪些
from tensorflow.keras import Sequential
from tensorflow.keras.layers import Conv2D # 卷积层
from tensorflow.keras.layers import MaxPool2D # 最大池化
from tensorflow.keras.layers import Flatten # 平铺层
from tensorflow.keras.layers import Dense # 全连接层
现在我们相当于知道了有了哪些材料啦,但是还剩下一个问题,我们如何把这些材料搭建起来呢?
答案有两种,一种是使用列表的形式,一种是使用add的形式。我都来演示一遍。注意看代码上面的注释说明,注意看代码上面的注释说明,注意看代码上面的注释说明。
from tensorflow.keras import Sequential
from tensorflow.keras.layers import Conv2D # 卷积层
from tensorflow.keras.layers import MaxPool2D # 最大池化
from tensorflow.keras.layers import Flatten # 平铺层
from tensorflow.keras.layers import Dense # 全连接层
# todo 我们如何把这些材料搭建起来?使用add方式,总共两步,步骤一和步骤二
# 步骤一,实例化一个Sequential对象
my_name_is_learn_model = Sequential()
# 步骤二,将现成的层对象按照顺序堆叠起来,格式:如下my_name_is_learn_model.add(),括号里面放层对象,例如下面的Dense
my_name_is_learn_model.add(Dense(units=32, name='dense_1'))
my_name_is_learn_model.add(Dense(units=64, name='dense_2'))
my_name_is_learn_model.add(Dense(units=128, name='dense_3'))
my_name_is_learn_model.add(Dense(units=10, name='dense_4'))
# 步骤三,使用这个神经网络
import tensorflow as tf
x = tf.Variable(initial_value=tf.random.normal(shape=(32, 784))) # 随便构造一个数据
out = my_name_is_learn_model(x) # 将数据输入神经网络得到输出
# 输入x的形状shape是通过第一个层的要求输入的,输出out的形状shape是通过最后一个层的规格输出的
pass
明白了使用add方法就很容易理解列表的方法,完整代码如下:
from tensorflow.keras import Sequential
from tensorflow.keras.layers import Conv2D # 卷积层
from tensorflow.keras.layers import MaxPool2D # 最大池化
from tensorflow.keras.layers import Flatten # 平铺层
from tensorflow.keras.layers import Dense # 全连接层
# todo 我们如何把这些材料搭建起来?使用列表方式,总共一步,步骤一
# 步骤一,实例化一个Sequential对象,并传入一个列表
my_name_is_learn_model = Sequential(
[
Dense(units=32, name='dense_1'),
Dense(units=64, name='dense_2'),
Dense(units=128, name='dense_3'),
Dense(units=10, name='dense_4')
]
)
# 步骤二,使用这个神经网络
import tensorflow as tf
x = tf.Variable(initial_value=tf.random.normal(shape=(32, 784))) # 随便构造一个数据
out = my_name_is_learn_model(x) # 将数据输入神经网络得到输出
# 输入x的形状shape是通过第一个层的要求输入的,输出out的形状shape是通过最后一个层的规格输出的
pass
到此,相信通过你帅气的脸庞再加上聪明的头脑肯定是都理解完毕啦,恭喜你又懂得了一点新知识,爱你哟么么哒哈哈哈哈