Ошибка классификации изображений в Google Cloud ML Keras «Объект Tensor» не имеет атрибута «assign» - PullRequest
0 голосов
/ 24 мая 2018

Я пытаюсь обучить inception_InceptionResNetV2 в Google Cloud ML с помощью keras и тензорного бэкэнда, но всегда получаю следующую ошибку:

master-replica-0
Traceback (most recent call last): File "/usr/lib/python2.7/runpy.py", line 174, in _run_module_as_main "__main__", fname, loader, pkg_name) File "/usr/lib/python2.7/runpy.py", line 72, in _run_code exec code in run_globals File "/root/.local/lib/python2.7/site-packages/trainer/cloud_trainer.py", line 136, in <module> train(args) File "/root/.local/lib/python2.7/site-packages/trainer/cloud_trainer.py", line 114, in train class_weight='auto') File "/root/.local/lib/python2.7/site-packages/keras/legacy/interfaces.py", line 91, in wrapper return func(*args, **kwargs) File "/root/.local/lib/python2.7/site-packages/keras/engine/training.py", line 2088, in fit_generator self._make_train_function() File "/root/.local/lib/python2.7/site-packages/keras/engine/training.py", line 990, in _make_train_function loss=self.total_loss) File "/root/.local/lib/python2.7/site-packages/keras/legacy/interfaces.py", line 91, in wrapper return func(*args, **kwargs) File "/root/.local/lib/python2.7/site-packages/keras/optimizers.py", line 470, in get_updates self.updates.append(K.update(m, m_t)) File "/root/.local/lib/python2.7/site-packages/keras/backend/tensorflow_backend.py", line 960, in update return tf.assign(x, new_x) File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/state_ops.py", line 277, in assign return ref.assign(value) AttributeError: 'Tensor' object has no attribute 'assign'

Используемый код:

  train_datagen = ImageDataGenerator(
      preprocessing_function=preprocess_input,
      rotation_range=30,
      width_shift_range=0.2,
      height_shift_range=0.2,
      shear_range=0.2,
      zoom_range=0.2,
      horizontal_flip=True
  )
  test_datagen = ImageDataGenerator(
      preprocessing_function=preprocess_input,
      rotation_range=30,
      width_shift_range=0.2,
      height_shift_range=0.2,
      shear_range=0.2,
      zoom_range=0.2,
      horizontal_flip=True
  )

  print("Test")
  os.system("mkdir pauls_tmp")
  os.system("gsutil -m cp -r " + args.train_dir + " pauls_tmp/")
  os.system("gsutil -m cp -r " + args.val_dir + " pauls_tmp/")

  train_generator = train_datagen.flow_from_directory(
      "pauls_tmp/train/",
      target_size=(IM_WIDTH, IM_HEIGHT),
      batch_size=batch_size,
    )

  validation_generator = test_datagen.flow_from_directory(
      "pauls_tmp/validation",
      target_size=(IM_WIDTH, IM_HEIGHT),
      batch_size=batch_size,
    )
 # setup model
  model = InceptionResNetV2(weights=None, include_top=True, classes=nb_classes) #include_top=False excludes final FC layer
  model.compile(optimizer=Adam(lr=0.0001, beta_1=0.9, beta_2=0.999), loss='categorical_crossentropy', metrics=['accuracy'])

  print("Start Training")
  history_tl = model.fit
  history_tl = model.fit_generator(
     train_generator,
     epochs=nb_epoch,
     validation_data=validation_generator,
     class_weight='auto')

Iиспользуйте Keras 2.1.4.

Когда я запускаю код local, все работает нормально.

У вас есть какие-нибудь указатели?

С наилучшими пожеланиями,

Пол

1 Ответ

0 голосов
/ 25 мая 2018

В каком-то месте вашего кода вы вызываете tf.assign (t, value), где t является тензором, а не переменной.

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