ValueError:图形在vgg16中已断开连接

时间:2019-08-26 10:30:34

标签: keras

Traceback:
model = Model(input_tensor,x,name = 'vgg16_trunk')
  File "/usr/local/lib/python3.6/dist-packages/keras/legacy/interfaces.py", line 91, in wrapper
    return func(*args, **kwargs)
  File "/usr/local/lib/python3.6/dist-packages/keras/engine/network.py", line 93, in __init__
    self._init_graph_network(*args, **kwargs)
  File "/usr/local/lib/python3.6/dist-packages/keras/engine/network.py", line 231, in _init_graph_network
    self.inputs, self.outputs)
  File "/usr/local/lib/python3.6/dist-packages/keras/engine/network.py", line 1443, in _map_graph_network
    str(layers_with_complete_input))
ValueError: Graph disconnected: cannot obtain value for tensor Tensor("input_2:0", shape=(?, 32, 32, 3), dtype=float32) at layer "input_2". The following previous layers were accessed without issue: []

如何在vgg16中解决此问题?

def create_model(input_shape):
    channel_axis = 1 if K.image_data_format() == "channels_first" else -1
    input_tensor = Input(shape=input_shape)
    base_model = VGG16(classes=10,input_tensor=None,input_shape=input_shape,include_top=False)
    x = base_model.output
    x = BatchNormalization(axis=channel_axis, momentum=mom,
                           epsilon=eps, gamma_initializer=gamma)(x)
    x = LeakyReLU(leakiness)(x)
    model = Model(input_tensor,x,name = 'vgg16_trunk')
    return model

1 个答案:

答案 0 :(得分:0)

通过您在此处创建的input_tensor:

input_tensor =输入(shape = input_shape)

创建base_model的位置:

base_model = VGG16(classes = 10,input_tensor = input_tensor,include_top = False)

还请注意,张量将已经具有input_shape,因此在创建base_model时不必再次将其作为参数。