python - 将keras api用于具有相同目标值的多输出模型

标签 python machine-learning keras artificial-intelligence

在根据 https://keras.io/models/model/ 的多输入或多输出模型的情况下, 可以使用

model = Model(inputs=a1, outputs=[b1, b2])

如果 b1 和 b2 实际上是相同的目标值怎么办? IE。经过几个初始层后,模型有两个独立的“分支”,每个都应该给出相同的值。下面是非常简单的例子

a  = Input(shape=(32,))
b1 = Dense(32)(a)
b2 = Dense(32)(a)

model = Model(inputs=a, outputs=[b1,b2])

是否有比复制目标值更好/更好的拟合方法?

model.fit(x_train, [y_train, y_train])

此外,如果在拟合期间(仅)需要真实标签(y_train),可以像这样使用它们

model.fit([x_train,y_train], [y_train, y_train])

有没有更好的解决办法?另外,如何处理预测?

model.predict([x_test, y_test_fake_labels])

最佳答案

首先是预测函数:model.predict(X) 将在您的案例中返回一个 numpy 数组列表。我认为您有点将 tensorflow 的 session.run() 与 keras 混淆了。对于单输入和多输出,使用 model.fit(X,[y1,y2])。

我假设您使用的是 Keras 的 tensorflow 后端。在我看来,Keras 可以说拥有最好的 API 和语法。与 tf.learn、slim 等相比,它简单易学。尽管它在后台运行 tensorflow,但与使用纯 tensorflow 运行图形相比,它非常慢。因此,我有时使用的一个小技巧是使用 keras 定义模型架构,然后使用 keras.backend.get_session().graph 从 keras 获取纯 tensorflow 图并使用 slim 或 tf.learn 进行训练 /推断你的模型。因此,您正在使用两个世界中最好的。从句法上讲,这开辟了很多训练/推断模型的方法。

关于python - 将keras api用于具有相同目标值的多输出模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51911751/

相关文章:

python - 有没有办法通过Python向PowerPoint幻灯片中的表格添加列?

python - 属性错误 : module 'keras.utils' has no attribute 'get_file' using segmentation_models

python - 如果其他列相等,则对列求和

python - 从具有 CloudFlare 的网站中抓取(BeautifulSoup,请求)

python - Pandas :使用数据类型过滤数据框

python - 使用 Scipy 实现逻辑回归 : Why does this Scipy optimization return all zeros?

python - 如何处理猜数字游戏(带有扭曲)算法?

python - XGBoost 在终端和笔记本上运行两次

python - 如何训练神经网络将文本分类为预先存在的类别?

python - 获取卷积算法失败。这可能是因为 cuDNN 初始化失败,