#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 (элементы смешанного размера) (или аналогичный список или фрейм данных).