Ошибка Input_size в LSTM PyTorch: RuntimeError: форма ‘[10, 30, 1]’ недопустима для ввода размера 150

Вы также можете использовать метод compareTo() для сравнения двух строк. Если результат compareTo равен 0, то две строки равны, в противном случае сравниваемые строки не равны.

== сравнивает ссылки и не сравнивает фактические строки. Если вы создали каждую строку, используя new String(somestring).intern(), вы можете использовать оператор == для сравнения двух строк, в противном случае могут использоваться только методы equals () или compareTo.

0
задан Leo 10 March 2019 в 02:12
поделиться

3 ответа

Измените это

t_x1=x1.view(10,30,1)

на

t_x1=x1.view(150,150,1)

и попробуйте

0
ответ дан Hasee Amarathunga 10 March 2019 в 02:12
поделиться

Учитывая, что вы используете batch_first=True и предполагаете, что размер пакета равен 10, (10, 30, 1) как форма ввода верна, так как это (batch_size, seq_len, input_size).

Вопрос в том, откуда берется 150. Какова форма x1, прежде чем пытаться применить .view(...)? Можете ли вы проверить следующее:

for i,(x1,y1) in enumerate(trainloader):
    print(x1.shape)
    ...

Интуитивно, это должно быть что-то вроде (10, ???), так как вы установили 10 как размер пакета. Прямо сейчас я предполагаю, что что-то с вами на тренировках и тестовых данных отключено.

0
ответ дан Christian 10 March 2019 в 02:12
поделиться

Из документации метода view (), «Возвращенный тензор разделяет одни и те же данные, и должен иметь одинаковое количество элементов , но может иметь другой размер.» [ 113]

x1 = torch.randn((150,))
t_x1 = x1.view(10,30,1)

RuntimeError: форма '[10, 30, 1]' недопустима для ввода размера 150

Это потому, что 150! = 10 * 30. Если вы хотите использовать 30 раз шаг, тогда ваш размер выборки должен быть 150/30 = 5. Итак, правильный путь -

t_x1 = x1.view(5,30,1)
0
ответ дан Manoj Mohan 10 March 2019 в 02:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: