深度学习示例2-多输入多输出的神经网络模型

在这里插入图片描述

一、代码示例

from tensorflow import keras
from tensorflow.keras import layers
import numpy as np

# 定义 多输入 多输出的模型
vocabulary_size = 1000
num_tags = 100
num_departments = 4

title = keras.Input(shape=(vocabulary_size,), name = "title")
text_body = keras.Input(shape=(vocabulary_size,), name = "text_body")
tags = keras.Input(shape=(num_tags,), name = "tags")

features = layers.Concatenate() ([title, text_body, tags])

features = layers.Dense(64, activation = "relu") (features)
priority = layers.Dense(1, activation = "sigmoid", name = "priority") (features)
department = layers.Dense(num_departments, activation = "softmax", name = "department") (features)

model = keras.Model(inputs=[title, text_body, tags], outputs=[priority, department])

# 训练多输入 多输出的模型
num_samples = 1280

title_data = np.random.randint(0, 2, size=(num_samples, vocabulary_size))
text_body_data = np.random.randint(0, 2, size=(num_samples, vocabulary_size))
tags_data = np.random.randint(0, 2, size=(num_samples, num_tags))

priority_data = np.random.random(size=(num_samples, 1))
department_data = np.random.randint(0, 2, size=(num_samples, num_departments))

model.compile(optimizer="rmsprop", loss=["mean_squared_error", "categorical_crossentropy"], metrics=[["mean_absolute_error"], ["accuracy"]])
model.fit([title_data, text_body_data, tags_data], [priority_data, department_data], epochs=10)
model.evaluate([title_data, text_body_data, tags_data], [priority_data, department_data])

priority_preds, department_preds = model.predict(
	[title_data, text_body_data, tags_data]
)

运行结果:

Epoch 1/10
40/40 [==============================] - 1s 2ms/step - loss: 4.5477 - priority_loss: 0.1296 - department_loss: 4.4181 - priority_mean_absolute_error: 0.2958 - department_accuracy: 0.2766
Epoch 2/10
40/40 [==============================] - 0s 2ms/step - loss: 4.1786 - priority_loss: 0.1377 - department_loss: 4.0410 - priority_mean_absolute_error: 0.3057 - department_accuracy: 0.3273
Epoch 3/10
40/40 [==============================] - 0s 2ms/step - loss: 4.8698 - priority_loss: 0.1714 - department_loss: 4.6984 - priority_mean_absolute_error: 0.3389 - department_accuracy: 0.3023
Epoch 4/10
40/40 [==============================] - 0s 2ms/step - loss: 5.5446 - priority_loss: 0.2163 - department_loss: 5.3283 - priority_mean_absolute_error: 0.3830 - department_accuracy: 0.3195
Epoch 5/10
40/40 [==============================] - 0s 2ms/step - loss: 7.1691 - priority_loss: 0.2945 - department_loss: 6.8746 - priority_mean_absolute_error: 0.4610 - department_accuracy: 0.3102
Epoch 6/10
40/40 [==============================] - 0s 2ms/step - loss: 7.9824 - priority_loss: 0.3229 - department_loss: 7.6595 - priority_mean_absolute_error: 0.4873 - department_accuracy: 0.2773
Epoch 7/10
40/40 [==============================] - 0s 2ms/step - loss: 9.4634 - priority_loss: 0.3445 - department_loss: 9.1190 - priority_mean_absolute_error: 0.5088 - department_accuracy: 0.2594
Epoch 8/10
40/40 [==============================] - 0s 2ms/step - loss: 10.7300 - priority_loss: 0.3445 - department_loss: 10.3856 - priority_mean_absolute_error: 0.5088 - department_accuracy: 0.2820
Epoch 9/10
40/40 [==============================] - 0s 2ms/step - loss: 12.3106 - priority_loss: 0.3445 - department_loss: 11.9661 - priority_mean_absolute_error: 0.5088 - department_accuracy: 0.2898
Epoch 10/10
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

象话

打赏犹如太阳穴的枪口

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值