Nano Hash - криптовалюты, майнинг, программирование

tensorflow.python.framework.errors_impl.InvalidArgumentError: вы должны указать значение для тензора-заполнителя 'sequential_input'

Я работаю над проблемой классификации OVA (один против всех). Для этого я обучил бинарные классификаторы Keras с сигмовидной функцией и binary_crossentropy. Мне нужно объединить их в мультиклассовую модель, аналогичную здесь Когда я пытаюсь это сделать, я получаю следующую ошибку

 tensorflow.python.framework.errors_impl.InvalidArgumentError: You must feed a value for placeholder tensor 'sequential_input' with dtype float and shape [?,224,224,3]
         [[{{node sequential_input}}]]

Программный код

for i in os.listdir(model_root): //loading all the models
print(i)
filename = model_root + "/" + i
# load model
model = load_model(filename, custom_objects={'KerasLayer': hub.KerasLayer})
models.append(model)
print(len(models))  //3

#Merge layer to fit a model

inputs = tf.keras.Input(shape=(224,224,3))
outputs = [m(inputs) for m in models]
outputs = tf.keras.layers.concatenate(outputs, axis=-1)
ensemble = tf.keras.models.Model(inputs, outputs)
ensemble.compile(optimizer=tf.keras.optimizers.Adam(), loss='categorical_crossentropy', metrics=['accuracy'])

#To fit the loaded models to the data

steps_per_epoch = image_data.samples // image_data.batch_size
validation_steps = image_data_val.samples / image_data_val.batch_size
ensemble.fit((item for item in image_data), epochs=2,
          steps_per_epoch=steps_per_epoch,
          validation_data=(item for item in image_data_val), validation_steps=validation_steps, verbose=2)

Я получаю эту ошибку в функции подгонки. Вот трассировка

Epoch 1/2
Traceback (most recent call last):
  File "<input>", line 1, in <module>
  File "C:\Program Files\JetBrains\PyCharm 2019.2\helpers\pydev\_pydev_bundle\pydev_umd.py", line 197, in runfile
    pydev_imports.execfile(filename, global_vars, local_vars)  # execute the script
  File "C:\Program Files\JetBrains\PyCharm 2019.2\helpers\pydev\_pydev_imps\_pydev_execfile.py", line 18, in execfile
    exec(compile(contents+"\n", file, 'exec'), glob, loc)
  File "C:/Users/Pawandeep/Desktop/Python projects/ensemble_image.py", line 85, in <module>
    validation_data=(item for item in image_data_val), validation_steps=validation_steps, verbose=2)
  File "C:\Python\lib\site-packages\tensorflow\python\keras\engine\training.py", line 673, in fit
    initial_epoch=initial_epoch)
  File "C:\Python\lib\site-packages\tensorflow\python\keras\engine\training.py", line 1433, in fit_generator
    steps_name='steps_per_epoch')
  File "C:\Python\lib\site-packages\tensorflow\python\keras\engine\training_generator.py", line 264, in model_iteration
    batch_outs = batch_function(*batch_data)
  File "C:\Python\lib\site-packages\tensorflow\python\keras\engine\training.py", line 1175, in train_on_batch
    outputs = self.train_function(ins)  # pylint: disable=not-callable
  File "C:\Python\lib\site-packages\tensorflow\python\keras\backend.py", line 3292, in __call__
    run_metadata=self.run_metadata)
  File "C:\Python\lib\site-packages\tensorflow\python\client\session.py", line 1458, in __call__
    run_metadata_ptr)
tensorflow.python.framework.errors_impl.InvalidArgumentError: You must feed a value for placeholder tensor 'dense_1_target' with dtype float and shape [?,?]
     [[{{node dense_1_target}}]]

Моя модель выглядит так

        Model: "model"
__________________________________________________________________________________________________
Layer (type)                    Output Shape         Param #     Connected to                     
==================================================================================================
input_1 (InputLayer)            [(None, 224, 224, 3) 0                                            
__________________________________________________________________________________________________
sequential_4 (Sequential)       (None, 1)            3541267     input_1[0][0]                    
__________________________________________________________________________________________________
sequential_8 (Sequential)       (None, 1)            3541267     input_1[0][0]                    
__________________________________________________________________________________________________
sequential_2 (Sequential)       (None, 1)            3541267     input_1[0][0]                    
__________________________________________________________________________________________________
concatenate (Concatenate)       (None, 3)            0           sequential_4[1][0]               
                                                                 sequential_8[1][0]               
                                                                 sequential_2[1][0]               
==================================================================================================
Total params: 10,623,801
Trainable params: 3,006
Non-trainable params: 10,620,795
__________________________________________________________________________________________________

Я не могу найти тензор плотности

 tensorflow.python.framework.errors_impl.InvalidArgumentError: You must feed a value for placeholder tensor 'sequential_input' with dtype float and shape [?,224,224,3]
         [[{{node sequential_input}}]]
цели. Я не понимаю, о ком идет речь.

Мои данные выглядят так:

image_data = image_generator.flow_from_directory(str(data_root), target_size=IMAGE_SIZE, subset='training')
for image_batch, label_batch in image_data:
print("Image batch shape: ", image_batch.shape) // (32, 224, 224, 3)
print("Label batch shape: ", label_batch.shape) // (32, 3)

Теперь, где я могу разместить заполнители и как я могу связать их со своими входными данными.


  • возможно, может помочь вам stackoverflow.com/questions/49756909/ 20.08.2019
  • Я не знаю, что такое tf.placeholder. Что это в моем коде? 20.08.2019
  • Заполнитель — это способ представления входных тензоров в TF (1.x). Может показаться, что вы не передаете все необходимые входные данные при вызове fit. Убедитесь, что item из item for item in image_data соответствует ожиданиям fit (т. е. массив формы [?,224,224,3] образцов изображений для передачи в сеть) 20.08.2019
  • определите заполнитель для вашего набора тренировочных значений и передайте эти значения в соответствии. Например x = tf.placeholder(tf.float32,shape=[None,224,224,3]) y_true = tf.placeholder(tf.float32,shape=[None,output_classes]) 20.08.2019
  • @Zrufy Я обновил сообщение информацией о данных, как я могу поместить сюда заполнитель. не могли бы вы помочь 20.08.2019
  • @GPhilo, да, я проверил, что он генерирует ту же форму, то есть «(32, 224, 224, 3)», где 32 — размер партии 21.08.2019
  • fit не ожидает, что данные будут предварительно упакованы, он группирует их внутри (один из параметров fit — размер пакета). 21.08.2019
  • @GPhilo Я делаю партии вручную. 32 — это размер пакета по умолчанию, который он дает. Я читаю данные из image_generator. но image_data и image_data_val (данные проверки) загружаются генератором, и тензорный поток группирует их до 32 21.08.2019
  • извините, я имел в виду, что я не * делаю партии вручную 21.08.2019

Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..