【问题标题】:AttributeError: 'numpy.ndarray' object has no attribute 'get_shape'?AttributeError:“numpy.ndarray”对象没有属性“get_shape”?
【发布时间】:2020-08-02 13:05:34
【问题描述】:

当我在本地从google's intro to tensorflow 运行beginner.ipynb 时,执行中断在

predictions = model(x_train[:1]).numpy()

出现以下错误:


AttributeError                            Traceback (most recent call last)

<ipython-input-15-6d3178b039b4> in <module>
----> 1 predictions = model(x_train[:1]).numpy()
      2 # print( type( predictions ) )
      3 # predictions = tf.convert_to_tensor( model(x_train[:1]) )
      4 predictions
      5 

C:\ProgramData\Anaconda3\lib\site-packages\tensorflow\python\keras\engine\base_layer.py in __call__(self, inputs, *args, **kwargs)
    590       else:
    591         # Eager execution on data tensors.
--> 592         outputs = self.call(inputs, *args, **kwargs)
    593         self._handle_activity_regularization(inputs, outputs)
    594         return outputs

C:\ProgramData\Anaconda3\lib\site-packages\tensorflow\python\keras\engine\sequential.py in call(self, inputs, training, mask)
    228   def call(self, inputs, training=None, mask=None):
    229     if self._is_graph_network:
--> 230       return super(Sequential, self).call(inputs, training=training, mask=mask)
    231 
    232     outputs, _ = self._call_and_compute_mask(

C:\ProgramData\Anaconda3\lib\site-packages\tensorflow\python\keras\engine\network.py in call(self, inputs, training, mask)
    813     outputs, _ = self._run_internal_graph(inputs,
    814                                           training=training,
--> 815                                           mask=masks)
    816     return outputs
    817 

C:\ProgramData\Anaconda3\lib\site-packages\tensorflow\python\keras\engine\network.py in _run_internal_graph(self, inputs, training, mask)
   1000                   output_tensors = layer(computed_tensor, **kwargs)
   1001                 else:
-> 1002                   output_tensors = layer.call(computed_tensor, **kwargs)
   1003                 if hasattr(layer, 'compute_mask'):
   1004                   output_masks = layer.compute_mask(computed_tensor,

C:\ProgramData\Anaconda3\lib\site-packages\tensorflow\python\keras\layers\core.py in call(self, inputs)
    553                  array_ops.shape(inputs)[0], -1))
    554     if not context.executing_eagerly():
--> 555       outputs.set_shape(self.compute_output_shape(inputs.get_shape()))
    556     return outputs
    557 

AttributeError: 'numpy.ndarray' object has no attribute 'get_shape'

我发现了一个类似的问题 here,但无法应用建议的修复。

我应该如何使代码工作?为什么相同的代码在 collab 上运行良好,但在我的本地机器上却失败了?

【问题讨论】:

  • 尽可能更新您的完整代码和错误跟踪
  • @AzyCrw4282,完成!
  • 该错误消息非常清楚地表明您没有运行predictions = model(x_train[:1]).numpy()。你做了很多改变,我们看不到全部的范围。
  • @user2357112-supports-Monica,抱歉,忘记更新了。我只是在尝试各种改变。但它是原来的代码不起作用。
  • 显然问题在于使用了错误版本的 tensorflow。确保你安装了 tensorflow2。

标签: python python-3.x numpy google-colaboratory numpy-ndarray


【解决方案1】:

OP 提到的答案是使用tensorflow2。 尽管无法找到此问题的根本原因,但似乎它可能源于tensorflow1.x 中不受支持的功能。

查看 1.x 与 2.x

here for the changes

【讨论】:

    猜你喜欢
    • 2021-06-24
    • 2020-12-03
    • 2020-11-29
    • 2020-10-06
    • 2018-01-25
    • 2016-06-29
    • 2020-03-25
    • 2013-12-07
    • 2017-10-16
    相关资源
    最近更新 更多