Ошибка значения: установка элемента массива с последовательностью на изображении массива

#python #arrays #numpy #tensorflow #keras

Вопрос:

Я столкнулся ValueError: setting an array element with a sequence с проблемой, когда попытался подогнать модель. Как я могу это решить?

Я использую приведенный ниже код для чтения набора данных изображений:

 X = [] for imagename in os.listdir('./landscapeImages/color/'):  X.append(img_to_array(load_img('./landscapeImages/color/' imagename))) X = np.array(X, dtype=object)    # Set up train and test data  split = int(0.95*len(X)) Xtrain = X[:split] Xtrain = 1.0/255*Xtrain  

ошибка, обнаруженная при выполнении обученной модели:

 import matplotlib.pyplot as plt  # Image transformer datagen = ImageDataGenerator(  shear_range=0.2,  zoom_range=0.2,  rotation_range=20,  horizontal_flip=True)  import matplotlib.pyplot as plt  # Image transformer datagen = ImageDataGenerator(  shear_range=0.2,  zoom_range=0.2,  rotation_range=20,  horizontal_flip=True)  # Generate training data batch_size = 10 def image_a_b_gen(batch_size):  for batch in datagen.flow(Xtrain, batch_size=batch_size):  lab_batch = rgb2lab(batch)  X_batch = lab_batch[:,:,:,0]  Y_batch = lab_batch[:,:,:,1:] / 128  yield (X_batch.reshape(X_batch.shape (1,)), Y_batch)  # Train model  tensorboard = TensorBoard(log_dir="/output/beta_run") trainedmodel = model.fit(image_a_b_gen(batch_size), callbacks=[tensorboard],epochs=500, steps_per_epoch=30)  

сообщение об ошибке:

 ValueError Traceback (most recent call last) lt;ipython-input-42-02d8e1059a92gt; in lt;modulegt;  28 # Train model  29 tensorboard = TensorBoard(log_dir="/output/beta_run") ---gt; 30 trainedmodel = model.fit(image_a_b_gen(batch_size), callbacks=[tensorboard],epochs=500, steps_per_epoch=30)  31   32   ~anaconda3libsite-packageskerasutilstraceback_utils.py in error_handler(*args, **kwargs)  65 except Exception as e: # pylint: disable=broad-except  66 filtered_tb = _process_traceback_frames(e.__traceback__) ---gt; 67 raise e.with_traceback(filtered_tb) from None  68 finally:  69 del filtered_tb  lt;ipython-input-42-02d8e1059a92gt; in image_a_b_gen(batch_size)  20 batch_size = 10  21 def image_a_b_gen(batch_size): ---gt; 22 for batch in datagen.flow(Xtrain, batch_size=batch_size):  23 lab_batch = rgb2lab(batch)  24 X_batch = lab_batch[:,:,:,0]  ~anaconda3libsite-packagesnumpycore_asarray.py in asarray(a, dtype, order, like)  100 return _asarray_with_like(a, dtype=dtype, order=order, like=like)  101  --gt; 102 return array(a, dtype, copy=False, order=order)  103   104   ValueError: setting an array element with a sequence  

Комментарии:

1. Подобные ошибки возникают при keras попытке преобразовать аргументы в числовой массив dtype, но аргументом является массив с типом объекта dtype (элементы смешанного размера) (или аналогичный список или фрейм данных).