tensorflow2.0实现复杂神经网络(多输入多输出nn,Resnet)

常见的‘融合’操作

复杂神经网络模型的实现离不开"融合"操作。常见融合操作如下:

(1)求和,求差

# 求和
layers.Add(inputs)
# 求差
layers.Subtract(inputs)

inputs: 一个输入张量的列表(列表大小至少为 2),列表的shape必须一样才能进行求和(求差)操作。

例子:

input1 = keras.layers.Input(shape=(16,))
x1 = keras.layers.Dense(8, activation='relu')(input1)
input2 = keras.layers.Input(shape=(32,))
x2 = keras.layers.Dense(8, activation='relu')(input2)
added = keras.layers.add([x1, x2])

out = keras.layers.Dense(4)(added)
model = keras.models.Model(inputs=[input1, input2], outputs=out)

(2)乘法

# 输入张量的逐元素乘积(对应位置元素相乘,输入维度必须相同)
layers.multiply(inputs)
# 输入张量样本之间的点积
layers.dot(inputs, axes, normalize=False) 

dot即矩阵乘法,例子1:

x = np.arange(10).reshape(1, 5, 2)

y = np.arange(10, 20).reshape(1, 2, 5)

# 三维的输入做dot通常像这样指定axes,表示矩阵的第一维度和第二维度参与矩阵乘法,第0维度是batchsize
tf.keras.layers.Dot(axes=(1, 2))([x, y])
# 输出如下:
<tf.Tensor: shape=(1, 2, 2), dtype=int64, numpy=
array([[[260, 360],
        [320, 445]]])>

例子2:

x1 = tf.keras.layers.Dense(8)(np.arange(10)<
输入多输出神经网络可以通过使用输入层和个输出层来实现。在TensorFlow中,可以使用tf.keras库来构建这样的神经网络模型。 一个例子是使用tf.keras.layers.add()函数将输入层的输出相加,然后将结果传递给输出层。以下是一个示例代码: ```python import tensorflow as tf # 定义输入层 input1 = tf.keras.layers.Input(shape=(16,)) input2 = tf.keras.layers.Input(shape=(32,)) # 定义隐藏层 x1 = tf.keras.layers.Dense(8, activation='relu')(input1) x2 = tf.keras.layers.Dense(8, activation='relu')(input2) # 将两个输入层的输出相加 added = tf.keras.layers.add(\[x1, x2\]) # 定义输出层 out = tf.keras.layers.Dense(4)(added) # 创建模型 model = tf.keras.models.Model(inputs=\[input1, input2\], outputs=out) ``` 在这个例子中,我们定义了两个输入层`input1`和`input2`,然后分别对它们进行了处理,得到了`x1`和`x2`。接下来,我们使用`tf.keras.layers.add()`函数将`x1`和`x2`相加得到`added`。最后,我们定义了一个输出层`out`,将`added`作为输入,并输出一个维度为4的张量。最后,我们使用`tf.keras.models.Model()`函数将输入层和输出层组合成一个模型。 这样,我们就构建了一个输入多输出神经网络模型。你可以根据自己的需求调整输入层、隐藏层和输出层的结构和参数。 #### 引用[.reference_title] - *1* *2* *3* [tensorflow2.0实现复杂神经网络输入多输出nnResnet)](https://blog.csdn.net/zhong_ddbb/article/details/108912753)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值