我有下面的代码,我不明白为什么这是图形断开错误?我不知道哪里不对。
def create_model_tl_attn_posInputOnly(input_shape):
print("start creating model - transfer learning ...")
emb = embed_encoding2d(input_shape[0], input_shape[1], input_shape[2]) # this is from another class
img_input = Input(shape=input_shape)
base_model = vgg19.VGG19(include_top=False, input_shape=input_shape, weights="imagenet")
base_model.trainable = False
x = base_model(img_input + emb)
flat1 = Flatten()(x)
class1 = Dense(1024, activation='relu')(flat1)
dropout1 = Dropout(0.2)(class1)
class2 = Dense(512, activation='relu')(dropout1)
dropout2 = Dropout(0.2)(class2)
output = Dense(num_classes, activation='softmax')(dropout2)
model = Model(inputs=img_input, outputs=output)
return model
我更改为model = Model(inputs=base_model.inputs, outputs=output)
,但仍然得到graph disconnected
错误。
我更新代码如下,没有错误,但是我不知道input
是否是img_input
和emb
的和,训练时如何检查?
def create_model_tl_attn_posInputOnly(input_shape):
print("start creating model - transfer learning ...")
emb = embed_encoding2d(input_shape[0], input_shape[1], input_shape[2]) # this is from another class
img_input = Input(shape=input_shape)
base_model = vgg19.VGG19(include_top=False, input_shape=input_shape, weights="imagenet")
base_model.trainable = False
x = base_model(img_input + emb)
x = base_model.layers[-1].output
flat1 = Flatten()(x)
class1 = Dense(1024, activation='relu')(flat1)
dropout1 = Dropout(0.2)(class1)
class2 = Dense(512, activation='relu')(dropout1)
dropout2 = Dropout(0.2)(class2)
output = Dense(num_classes, activation='softmax')(dropout2)
model = Model(inputs=base_model.inputs, outputs=output)
return model