全面小白分析如何使用tensorflow2.0中的Sequential按层顺序创建模型

你是否苦恼看到一个神经网络结构图却不知如何将其转变成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

到此,相信通过你帅气的脸庞再加上聪明的头脑肯定是都理解完毕啦,恭喜你又懂得了一点新知识,爱你哟么么哒哈哈哈哈

  • 6
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值