1

我正在尝试开始使用神经结构化学习,但是当我运行页面上给出的示例进行测试时,我收到以下错误

我试图压缩尺寸,我尝试了不同版本的 tensorflow --- 我对 tensorflow 还是很陌生,所以在这一点上我真的会猜测。

# Create a base model -- sequential, functional, or subclass.
model = tf.keras.Sequential([
    tf.keras.Input((28, 28), name='feature'),
    tf.keras.layers.Flatten(),
    tf.keras.layers.Dense(128, activation=tf.nn.relu),
    tf.keras.layers.Dense(10, activation=tf.nn.softmax)
])

# Wrap the model with adversarial regularization.
adv_config = nsl.configs.make_adv_reg_config(multiplier=0.2, adv_step_size=0.05)
adv_model = nsl.keras.AdversarialRegularization(model, adv_config=adv_config)


# Compile, train, and evaluate.
adv_model.compile(optimizer='adam',loss='sparse_categorical_crossentropy',metrics=['accuracy'])


#let us now fit the model
adv_model.fit({'feature': x_train, 'label': y_train}, batch_size=32, epochs=5)



W0906 13:48:30.427690 140388427564928 training_utils.py:1101] Output output_1 missing from loss dictionary. We assume this was done on purpose. The fit and evaluate APIs will not be expecting any data to be passed to output_1.
Epoch 1/5
---------------------------------------------------------------------------
InvalidArgumentError                      Traceback (most recent call last)
<ipython-input-21-a5b951c24c49> in <module>()
----> 1 adv_model.fit({'feature': x_train, 'label': y_train}, batch_size=32, epochs=5)

3 frames
/usr/local/lib/python3.6/dist-packages/tensorflow/python/client/session.py in __call__(self, *args, **kwargs)
   1456         ret = tf_session.TF_SessionRunCallable(self._session._session,
   1457                                                self._handle, args,
-> 1458                                                run_metadata_ptr)
   1459         if run_metadata:
   1460           proto_data = tf_session.TF_GetBuffer(run_metadata_ptr)

InvalidArgumentError: Cannot update variable with shape [] using a Tensor with shape [32], shapes must be equal.
     [[{{node AdversarialRegularization_1/AssignAddVariableOp_2}}]]

该模型应该进行训练,并且我从中获得了一些准确性。我不明白问题出在我的代码中。

我正在使用 Tensorflow v1.14.0 在 Google Colab 上运行它

4

1 回答 1

0

尽管没有在任何要求中明确提及,但在所有 三个(到目前为止)教程中,第一步是安装 Tensorflow 2.0:

在此处输入图像描述

在相关博客文章中也有一个与您相同的错误报告,已通过升级到 Tensorflow 2.0解决

因此,创建一个安装 TF 2.0 和软件包的环境:

pip install --quiet tensorflow==2.0.0-rc0
pip install --quiet neural-structured-learning

你应该没事。

于 2019-09-06T15:28:23.917 回答