Я изучаю уроки тензорного потока, на одном из которых есть шаг, чтобы преобразовать массив с формой (60000, 10, 1) в форму (60000, 10).Но кажется, что форма не изменилась после вызова метода ndarray.reshape - он все еще (60000, 10, 1).
Однако я попытался установить Атрибут shape напрямую работает !Например:
# Setting shape attribute works - fragment of python code
# Shape of training[1] is (60000, 10, 1)
training[1] = np.array([vectorized_result(y) for y in training[1]])
training[1].shape = (training[1].shape[0],training[1].shape[1])
# print the shape
print(training[1].shape)
# definition of vectorized_result
def vectorized_result(j):
"""Return a 10-dimensional unit vector with a 1.0 in the jth
position and zeroes elsewhere. This is used to convert a digit
(0...9) into a corresponding desired output from the neural
network."""
e = np.zeros((10, 1))
e[j] = 1.0
return e
Запустите код и получите
$ python test.py
(60000, 10)
Используя изменить форму метод, но не удается :
# fragment of python code
training[1] = np.array([vectorized_result(y) for y in training[1]])
training[1].reshape((training[1].shape[0],training[1].shape[1]))
# print the shape
print(training[1].shape)
# definition of vectorized_result
def vectorized_result(j):
"""Return a 10-dimensional unit vector with a 1.0 in the jth
position and zeroes elsewhere. This is used to convert a digit
(0...9) into a corresponding desired output from the neural
network."""
e = np.zeros((10, 1))
e[j] = 1.0
return e
Запустите код и получите
$ python test.py
(60000, 10, 1)
Пожалуйста, помогите мне с этой проблемой.
Спасибо большое.