tensorflow - 如何在 Keras 中使用平铺功能?
问题描述
我想用 Keras 构建一个神经网络,但我得到了一个错误:
AttributeError: 'NoneType' object has no attribute '_inbound_nodes'
,这是我的示例代码:
from keras.layers.merge import concatenate
img = Input(shape=(64,64,3))
text_input = Input(shape=(192,))
text_emb = Reshape(target_shape=(1, 1, 256))(Dense(256, activation='relu')(text_input))
tiled_emb = keras.backend.tile(text_emb, (-1, 64, 64, 1))
img_feat = Conv2D(400,4,padding='same')(img)
con = concatenate([tiled_emb,img_feat])
conv4 = Conv2D(512, 1)(con)
flat = Flatten()(conv4)
validity = Dense(1, activation='sigmoid')(flat)
Model([img, text_input], validity)
解决方案
出现这个错误是因为 keras.backend.tile 是一个函数而不是一个层,使得 tiled_emb 成为一个张量。然后在尝试构建网络并遇到它期望层的张量时生成错误(因此未定义 attr _inbound_nodes)。
您可以使用keras.layers.lambda层将任何函数转换为层,例如:
tiled_emb = Lambda(keras.backend.tile, arguments={'n':(-1, 64, 64, 1)})(text_emb)
推荐阅读
- python - 熊猫问题与外国信件
- java - 在运行时使用方法的返回类型进行转换的 Scala 反射
- android - 如何解决 Duplicate class java.lang.RuntimeException: Duplicate class com.google.zxing.client
- javascript - 为什么在重新渲染页面之前调用 componentWillRecieveProps()?
- java - 单击recyclerview中的列表之一时如何关闭活动?
- java - 使用 java netcdfAll 读取 NOAA CFS (grib) 文件
- amazon-web-services - 调整正在运行的 Amazon EC2 实例的大小
- c - 在 Keil 中使用 Arcom 的 C 嵌入式程序的目标和板
- c# - 下载配置数据
- symfony - Symfony 4 事件订阅者用户