python - 使用内部层的输出来拟合 Keras 模型?
问题描述
我有一个模型 M,它有两个输入:x_train1、x_train2。在经过大量的转换之后,这些输入被连接到一个单独的数组 x1_x2 中。稍后将其插入自动编码器,其中输出应为 x1_x2。但是当我尝试拟合模型时,出现以下错误:
ValueError:将符号张量提供给模型时,我们希望张量具有静态批量大小。得到具有形状的张量:(无,2080)
我知道问题在于我如何指定预期的输出。我能够使用诸如 np.zeros((96, 2080)) 之类的虚拟数组运行代码,但不能通过设置内部层的输出来运行代码。
我执行以下操作来拟合模型:
autoencoder.fit([x_train1, x_train2],
autoencoder.layers[-7].output,
epochs=50,
batch_size=8,
shuffle=True,
validation_split=0.2)
我怎样才能让 Keras 理解预期的输出应该是具有形状(number_of_input_images,2080)的内部层的输出?
解决方案
我会做以下事情:Model
从 Keras 导入类并创建一个附加模型。
from tensorflow.python.keras.models import Model
# model = your existing model
new_model = Model(
inputs = model.input,
outputs = model.get_layer(name_of_desired_output_layer).output
)
就是这样,现在您可以使用新模型并对其进行训练。
推荐阅读
- python - Python 脚本未安装 npm 包
- typescript - Typescript Generic Repository - 实例化泛型类型
- java - ICU4j - 如何使用 Numberformatter 覆盖货币符号或添加自定义货币
- c - 错误:条件跳转或移动取决于未初始化的值
- python - Boto3 在 docker 中需要 AWS 区域,但在本地环境中不需要
- grpc - 如何解决 getaddrinfow:找不到指定的类。尝试通过 grpcurl 调用 gRPC 函数时?
- c# - C# SendKeyPress 并不总是将窗口置于前面
- javascript - Concat json to promise:如何从promise挂起的json对象中获取额外的键值对
- python-3.x - 根据其他列值删除数据框的值
- wagtail - Wagtail initDateChooser 是为一个应用程序而不是另一个应用程序定义的?