“中的TypeError”tf.keras.层.concatenate”:添加的层必须是类层的实例。找到:十

2024-05-08 00:25:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试合并三个层并将其添加到模型中,但是我从tf.keras.layers.concatenate得到了一个Tensor,而不是一个层?如何解决这个问题?你知道吗

...
ipt = tf.keras.Input(shape=[10, 5])
convs = []
fs= [1, 2, 3]
for f in fs:
    conv = tf.keras.layers.Conv1D(activation='tanh', kernel_size=f, filters=200)(ipt)
    pool = tf.keras.layers.MaxPooling1D(10 - fsz + 1, padding="same")(conv)
    pool = tf.keras.layers.Flatten()(pool)
    convs.append(pool)
merge = tf.keras.layers.concatenate(convs, axis=1)

model = tf.keras.models.Sequential()
model.add(ipt)
model.add(merge)
...
TypeError: The added layer must be an instance of class Layer. Found: Tensor("concatenate/Identity:0", shape=(None, 600), dtype=float32)

Tags: 模型addmodellayerstfmergefskeras
1条回答
网友
1楼 · 发布于 2024-05-08 00:25:36

我觉得你用的模型不对。试着用下面的方法修改代码。你知道吗

from tensorflow.keras import layers, models

ipt = layers.Input(shape=[10, 5])
convs = []
fsz = 8
fs= [1, 2, 3]
for f in fs:
    conv = layers.Conv1D(activation='tanh', kernel_size=f, filters=200)(ipt)
    pool = layers.MaxPooling1D(10 - fsz + 1, padding="same")(conv)
    pool = layers.Flatten()(pool)
    convs.append(pool)
merge = layers.Concatenate(axis=1)(convs)

model = models.Model(inputs=ipt, outputs=merge)
model.summary()

相关问题 更多 >