我遇到一个关于多输出使用的问题特斯拉斯建立模型并使用tf.data.dataset作为输入管道。下面是我的代码:
a = tf.keras.layers.Input(shape=(368, 368, 3))
conv1 = tf.keras.layers.Conv2D(64, 3, 1)(a)
conv2 = tf.keras.layers.Conv2D(64, 3, 1)(conv1)
maxpool = tf.keras.layers.MaxPooling2D(pool_size=8, strides=8,
padding='same')(conv2)
conv3 = tf.keras.layers.Conv2D(5, 1, 1)(maxpool)
conv4 = tf.keras.layers.Conv2D(6, 1, 1)(maxpool)
inputs = a
outputs = [conv3, conv4]
model = tf.keras.models.Model(inputs=inputs, outputs=outputs)
model.compile(optimizer=tf.keras.optimizers.SGD(),
loss=tf.keras.losses.mean_squared_error)
import numpy as np
data = np.random.rand(10, 368, 368, 3)
cpm = np.random.rand(10, 46, 46, 5)
paf = np.random.rand(10, 46, 46, 6)
dataset1 = tf.data.Dataset.from_tensor_slices((data))
dataset2 = tf.data.Dataset.from_tensor_slices((cpm, paf))
dataset1 = dataset1.batch(10).repeat()
dataset2 = dataset2.batch(10).repeat()
dataset = tf.data.Dataset.zip((dataset1, dataset2))
model.fit(dataset, epochs=200, steps_per_epoch=30)
我使用tensorflow==1.10.1,得到的错误如下:
^{pr2}$更新: 在升级tf==1.11.0之后,我已经让这段代码正常工作了。所以也许我认为是版本错误。在
您可以尝试将输出串联起来,然后对目标numpy数组执行相同的操作。我不确定它是否对你的应用程序逻辑有意义。在
返回结果:
^{pr2}$相关问题 更多 >
编程相关推荐