Ошибка при запуске учебника по классификатору изображений в Google Colab - PullRequest
2 голосов
/ 30 марта 2020

Учебник по автокерасу здесь https://colab.research.google.com/github/keras-team/autokeras/blob/master/docs/templates/tutorial/image_classification.ipynb

не работает на линии:

import autokeras as ak

# Initialize the image classifier.
clf = ak.ImageClassifier(max_trials=10) # It tries 10 different models.
# Feed the image classifier with training data.
clf.fit(x_train, y_train,epochs=3)

с ошибкой:

AttributeError: in user code:

    /usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/engine/training.py:503 train_function  *
        outputs = self.distribute_strategy.run(
    /usr/local/lib/python3.6/dist-packages/tensorflow/python/distribute/distribute_lib.py:951 run  **
        return self._extended.call_for_each_replica(fn, args=args, kwargs=kwargs)
    /usr/local/lib/python3.6/dist-packages/tensorflow/python/distribute/distribute_lib.py:2290 call_for_each_replica
        return self._call_for_each_replica(fn, args, kwargs)
    /usr/local/lib/python3.6/dist-packages/tensorflow/python/distribute/distribute_lib.py:2649 _call_for_each_replica
        return fn(*args, **kwargs)
    /usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/engine/training.py:475 train_step  **
        self.compiled_metrics.update_state(y, y_pred, sample_weight)
    /usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/engine/compile_utils.py:386 update_state
        self._build(y_pred, y_true)
    /usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/engine/compile_utils.py:317 _build
        self._metrics, y_true, y_pred)
    /usr/local/lib/python3.6/dist-packages/tensorflow/python/util/nest.py:1118 map_structure_up_to
        **kwargs)
    /usr/local/lib/python3.6/dist-packages/tensorflow/python/util/nest.py:1214 map_structure_with_tuple_paths_up_to
        *flat_value_lists)]
    /usr/local/lib/python3.6/dist-packages/tensorflow/python/util/nest.py:1213 <listcomp>
        results = [func(*args, **kwargs) for args in zip(flat_path_list,
    /usr/local/lib/python3.6/dist-packages/tensorflow/python/util/nest.py:1116 <lambda>
        lambda _, *values: func(*values),  # Discards the path arg.
    /usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/engine/compile_utils.py:416 _get_metric_objects
        return [self._get_metric_object(m, y_t, y_p) for m in metrics]
    /usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/engine/compile_utils.py:416 <listcomp>
        return [self._get_metric_object(m, y_t, y_p) for m in metrics]
    /usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/engine/compile_utils.py:437 _get_metric_object
        y_t_rank = len(y_t.shape.as_list())

    AttributeError: 'tuple' object has no attribute 'shape'

Это ошибка в коде или в настройке Google Colab?

Ответы [ 4 ]

1 голос
/ 30 марта 2020

Мне не помогли установка tenorflow в pip == 2.1.0 и% tenorflow_version 2.x. Я все еще получаю ту же ошибку.

Вам потребуется точная версия 2.1, как указано в принятом ответе выше, чтобы избавиться от ошибки.

Я использую Google Colab

0 голосов
/ 03 апреля 2020

У меня TF 2.1.0, но ошибка та же. код работает на моей машине, но не на Google Colab

0 голосов
/ 30 марта 2020

Вам также не нужно повторно устанавливать TensorFlow 2.1.

Вы можете выбрать его, просто позвонив по телефону:

%tensorflow_version 2.x
0 голосов
/ 30 марта 2020

Проблема не в коде, я пробовал сам на своей локальной машине, и он работает отлично. Настоящая проблема в том, что эта строка

pip install tensorflow

Эта строка дает pip полную ответственность за выбор устанавливаемой версии тензорного потока, к сожалению, она решила установить версию r c tensorflow-2.2.0rc1, которая выглядит так, как будто проблема с autokeras.

Так что все, что вам нужно сделать, чтобы сделать эту работу, это исправить версию на последнюю стабильную версию тензорного потока, которая, как известно, работает с autokeras

pip install tensorflow==2.1.0
...