что это за ошибка при изменении формы в python?

#python #list #reshape #tensor

Вопрос:

У меня есть акт[‘а»] факела.Размер([1, 64, 32, 32]) и действуйте[‘b’] факела.Размер([1, 128, 16, 16]) и действуйте[‘с’] факела.Размер([1, 256, 8, 8]). и у меня есть:

 target = {'a': [], 'b': [], 'c': []}
for i in range(800):
                target['a'].append(act['a'])
                target['b'].append(act['b'])
                target['c'].append(act['c'])
 

итак, теперь размер цели[‘a’] равен [800, 1, 64, 32, 32]. как я могу изменить его, чтобы [1, 64, 800, 32, 32]?

Я пытался

 tf.reshape(target['a'], [1, 64, 800,32,32])
 

и это дает мне эту ошибку, из-за которой я сделал снимок экрана:

введите описание изображения здесь

Ответ №1:

Это то, чего ты ожидаешь?

 a = tf.zeros([1, 64, 32, 32])
target = {'a': [a] * 800}
m = tf.convert_to_tensor(target['a'])
n = tf.reshape(m, [1, 64, 800, 32, 32])
 
 >>> m.shape
TensorShape([800, 1, 64, 32, 32])

>>> n.shape
TensorShape([1, 64, 800, 32, 32])
 

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

1. Я написал: цель.изменить форму([3, 1, 64, 800, 32, 32]) и это дает мне такую ошибку: объект «дикт» не имеет атрибута «изменить форму». как вы можете видеть в моем коде, цель-это дикт

2. Забудь, что я писал раньше, я не понимал

3. цель [«а»] — это список. как я могу его изменить?

4. @Призрак. Я обновил свой ответ. Я думаю, что должен работать на тебя.

5. Спасибо, что уделили мне время