【发布时间】:2020-09-21 11:27:30
【问题描述】:
我正在尝试从头开始实施 RESNET 50。累积所有层后,我调用tf.keras.Model。但是,它给出了一个错误:
AttributeError: Tensor.op 在启用 Eager Execution 时毫无意义。
为了测试,我输入了一个 4-D 张量。 conv_diff_size 和 conv_same_size 是两个自定义块,具有 con2d 和批量标准化层。我在 Google Colab 上使用 TensorFlow 2.0。
def ResNet50(inputs, classes):
X = tf.keras.layers.Conv2D(64, kernel_size = (7,7), strides=2, padding='valid', data_format='channels_last', input_shape = inputs.shape)(inputs)
X = tf.keras.layers.BatchNormalization(axis=-1, momentum=0.9)(X)
X = tf.keras.layers.MaxPool2D(pool_size=(3, 3), strides=2)(X)
X = conv_diff_size(X, [64, 64, 256])
X = conv_same_size(X, [64, 64, 256])
X = conv_same_size(X, [64, 64, 256])
X = conv_diff_size(X, [128, 128, 512])
X = conv_same_size(X, [128, 128, 512])
X = conv_same_size(X, [128, 128, 512])
X = conv_same_size(X, [128, 128, 512])
X = conv_diff_size(X, [256, 256, 1024])
X = conv_same_size(X, [256, 256, 1024])
X = conv_same_size(X, [256, 256, 1024])
X = conv_same_size(X, [256, 256, 1024])
X = conv_same_size(X, [256, 256, 1024])
X = conv_diff_size(X, [512, 512, 2048])
X = conv_same_size(X, [512, 512, 2048])
X = conv_same_size(X, [512, 512, 2048])
X = conv_same_size(X, [512, 512, 2048])
X = conv_same_size(X, [512, 512, 2048])
X = conv_same_size(X, [512, 512, 2048])
X = tf.keras.layers.AveragePooling2D(pool_size=(2, 2), name = 'avg_pool')(X)
X = tf.keras.layers.Flatten()(X)
X = tf.keras.layers.Dense(classes, activation='relu')(X)
model = tf.keras.Model(inputs=X, outputs = X)
return model
【问题讨论】:
-
尝试更改您的模型定义:tf.keras.Model(inputs=inputs, outputs = X) ...我想您的自定义块也是正确的
-
它仍然给我同样的错误
-
我期待这个,但你的模型定义必须是 tf.keras.Model(inputs=inputs, outputs = X)
-
这会有什么不同?请告诉我
-
你找到答案了吗?
标签: keras deep-learning conv-neural-network tensorflow2.0 resnet