Невозможно изменить Numpy Array, даже с несколькими методами - PullRequest
0 голосов
/ 28 февраля 2019

Я получаю очень странную ошибку:

print(np.asarray(X[i%len(y)]).shape)
x_train = X[i%len(y)]
x_train.shape = (1, x_train.shape[0], x_train.shape[1]) 

(39, 4096)
Traceback (most recent call last):
  File "scripts/train_new.py", line 172, in <module>
    model.fit_generator(train_generator(), steps_per_epoch=len(y), epochs=1, verbose=1)
  File "/home/ubuntu/anaconda3/envs/python2/lib/python2.7/site-packages/keras/legacy/interfaces.py", line 91, in wrapper
    return func(*args, **kwargs)
  File "/home/ubuntu/anaconda3/envs/python2/lib/python2.7/site-packages/keras/engine/training.py", line 1418, in fit_generator
    initial_epoch=initial_epoch)
  File "/home/ubuntu/anaconda3/envs/python2/lib/python2.7/site-packages/keras/engine/training_generator.py", line 181, in fit_generator
    generator_output = next(output_generator)
  File "/home/ubuntu/anaconda3/envs/python2/lib/python2.7/site-packages/keras/utils/data_utils.py", line 709, in get
    six.reraise(*sys.exc_info())
  File "/home/ubuntu/anaconda3/envs/python2/lib/python2.7/site-packages/keras/utils/data_utils.py", line 685, in get
    inputs = self.queue.get(block=True).get()
  File "/home/ubuntu/anaconda3/envs/python2/lib/python2.7/multiprocessing/pool.py", line 572, in get
    raise self._value
ValueError: total size of new array must be unchanged

Я пытался развернуть_dims, попробовал np.new_axis, попытался изменить форму, чтобы просто изменить форму массива на (1, 39, 4096) вместо(39, 4096), и все дает ту же ошибку.Даже пытался скопировать запись массива в переменную, все тот же erorr.

Почему происходит ошибка и как я могу ее исправить?

1 Ответ

0 голосов
/ 28 февраля 2019

Использование reshape не shape:

arr = np.zeros((39, 4096))
dim1, dim2 = arr.shape
arr.reshape((1,dim1,dim2)).shape
(1, 39, 4096)
...