AttributeError: 'numpy .ndarray' объект не имеет атрибута 'get_shape'? - PullRequest
0 голосов
/ 20 апреля 2020

Когда я запускаю beginner.ipynb из вступления Google в тензор потока локально, выполнение прерывается на

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'

Я нашел похожий вопрос здесь , но не смог применить предложенное исправление.

Как мне заставить код работать? Почему тот же код работает нормально на Collab, но не работает на моей локальной машине?

1 Ответ

1 голос
/ 07 мая 2020

Ответ, как указано в ФП, заключается в использовании tensorflow2. Хотя не удалось найти причину этой проблемы root, похоже, что это может быть связано с неподдерживаемой функциональностью в tensorflow1.x.

См. здесь для изменений из 1.x против 2.x

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...