您尝试在 ... 上调用 count_params,但未构建该层。TensorFlow 2.0

fis*_*han 5 tensorflow2.0

我在 Pyhotn 3 和 TF 2.0 中收到以下错误。

“ValueError:您尝试在数字上调用 count_params,但未构建该层。您可以通过以下方式手动构建它:digits.build(batch_input_shape)。” 在 new_model.summary() 行。

问题是什么以及如何解决?

inputs = keras.Input(shape=(784,), name='digits')
x = layers.Dense(64, activation='relu', name='dense_1')(inputs)
x = layers.Dense(64, activation='relu', name='dense_2')(x)
outputs = layers.Dense(10, activation='softmax', name='predictions')(x)

model = keras.Model(inputs=inputs, outputs=outputs, name='3_layer_mlp')
model.summary()

(x_train, y_train), (x_test, y_test) = keras.datasets.mnist.load_data()
x_train = x_train.reshape(60000, 784).astype('float32') / 255
x_test = x_test.reshape(10000, 784).astype('float32') / 255

model.compile(loss='sparse_categorical_crossentropy',
              optimizer=keras.optimizers.RMSprop(),
              metrics=['accuracy'])
history = model.fit(x_train, y_train,
                    batch_size=64,
                    epochs=2)

model.save('saved_model', save_format='tf')
new_model = keras.models.load_model('saved_model')
new_model.summary()
Run Code Online (Sandbox Code Playgroud)

Vil*_*ami 0

我遇到了同样的问题,我正在使用tensorflow==2.0.0. 我尝试使用tensorflows nightly build运行相同的代码(在我的例子中pip install tf-nightly==2.1.0.dev20191003)。

它适用于夜间构建,但您可能必须使用夜间构建再次保存模型。