问题描述
我有一个图像数据集以及方向信息。我想将此方向信息作为附加信息添加到完全连接的层。我也尝试了以下代码。
def build_model(inp_shape=(35,35,3),vector_shape=(1,)):
base_model = keras.Sequential()
base_model.add(keras.layers.Conv2D(32,3,activation="relu",input_shape=inp_shape))
base_model.add(keras.layers.Batchnormalization())
base_model.add(keras.layers.MaxPooling2D((2,2)))
base_model.add(keras.layers.Dropout(0.25))
base_model.add(keras.layers.Conv2D(64,activation="relu"))
base_model.add(keras.layers.Batchnormalization())
base_model.add(keras.layers.MaxPooling2D((2,2)))
base_model.add(keras.layers.Dropout(0.25))
base_model.add(keras.layers.GlobalAveragePooling2D(data_format='channels_last'))
base_model.add(keras.layers.Dense(128,activation="relu"))
base_model.add(keras.layers.Batchnormalization())
base_model.add(keras.layers.Dropout(0.5))
vector_model = keras.Sequential()
vector_model.add(keras.layers.Dense(1,activation='relu',input_shape=vector_shape))
model = keras.layers.concatenate([base_model,vector_model],axis=-1)
model.add(keras.layers.Dense(4,activation='softmax'))
model.summary()
return model
但这会导致以下错误。
ValueError: Layer concatenate_3 was called with an input that isn't a symbolic tensor. Received type: <class 'keras.engine.sequential.Sequential'>. Full input: [<keras.engine.sequential.Sequential object at 0x000001FAbed0F208>,<keras.engine.sequential.Sequential object at 0x000001FAB056A308>]. All inputs to the layer should be tensors.
这是因为我将输入内容提供给模型的方式如下吗?
model = build_model(inp_shape=data_shape,vector_shape=vector_shape)
model.compile(loss='categorical_crossentropy',optimizer=keras.optimizers.Adam(),metrics=["accuracy"])
history = model.fit_generator(training_generator,steps_per_epoch=len(x_train) // batch_size,epochs=num_epochs,shuffle=True,callbacks=callbacks,validation_data=(x_val,y_val))
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)