网络容器

例如:2层的全连接层上加上单独的激活函数层,可以通过Sequential容器封装为一个网络

import tensorflow as tf
import numpy as np
#导入keras模型,不能使用import keras ,它导入的是标准的keras库
from tensorflow import keras
from tensorflow.keras import layers,Sequential#导入常见的网络层类

x=tf.constant([2.,1.,0.1])#创建输入张量
#layer=layers.Softmax(axis=-1)#创建Softmax层 
#out=layer(x)#调用Softmax向前计算,输出为out
#out=tf.nn.softmax(x)#调用Softmax函数完成向前计算
#print(out)
network=Sequential(#封装一个网络层
                    [layers.Dense(3,activation=None),#全连接层,此处不使用激活函数
                    layers.ReLU(),#激活函数
                    layers.Dense(2,activation=None),#全连接层,此处不使用激活函数
                    layers.ReLU()#激活函数
                   ])
x=tf.random.normal([4,3])
out=network(x)#输入从第一层开始,逐步传播至输出层,并返回输出层的输出
print(out)

layers_num=2#堆叠两次
network=Sequential([])#先创建空的网络容器
for i in range(layers_num):
    network.add(layers.Dense(3))#添加全连接层
    network.add(layers.ReLU())#添加激活函数层
network.build(input_shape=[4,4])#创建网络参数
network.summary()#可以方便的打印出网络结构和参数量

for p in network.trainable_variables:#打印网络的待优化参数名和shape
    print(p.name,p.shape)#参数名和形状
tf.Tensor(
[[0.         0.        ]
 [0.         0.01343679]
 [0.         0.        ]
 [0.         0.2279749 ]], shape=(4, 2), dtype=float32)
Model: "sequential_1"
_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
dense_2 (Dense)              multiple                  15        
_________________________________________________________________
re_lu_2 (ReLU)               multiple                  0         
_________________________________________________________________
dense_3 (Dense)              multiple                  12        
_________________________________________________________________
re_lu_3 (ReLU)               multiple                  0         
=================================================================
Total params: 27
Trainable params: 27
Non-trainable params: 0
_________________________________________________________________
dense_2/kernel:0 (4, 3)
dense_2/bias:0 (3,)
dense_3/kernel:0 (3, 3)
dense_3/bias:0 (3,)
上一篇:[TensorFlow] 关于tf.keras.layers.Embedding中参数input_length的作用


下一篇:Keras使用Leaky_Relu等高级激活函数