Pytorch: Pesan kesalahan yang membingungkan saat padding disetel ke float di nn.Conv1d

Dibuat pada 16 Mei 2017  ·  3Komentar  ·  Sumber: pytorch/pytorch

Ketika saya membuat layer Conv dan melewatkan padding sebagai float secara tidak sengaja, saya mendapatkan pesan kesalahan yang membingungkan, yang membuatnya lebih sulit untuk di-debug. Juga, kesalahan dilemparkan ketika saya melakukan umpan maju.

self.cnn = nn.Conv1d(in_channels=self.input_size, out_channels=self.num_filters,kernel_size=kw_l,padding=1.0)
self.cnn(inp)  # error is thrown in this line

Pesan kesalahannya adalah "RuntimeError: argumen 1 harus berupa tuple int, bukan tuple"

Semua 3 komentar

Untuk memperjelas, saya pikir mungkin akan membantu jika RuntimeError diperbarui untuk memasukkan jenis Tuple yang salah, jadi jelas bahwa jenisnya diharapkan menjadi int.

import torch
import torch.nn as nn
from torch.autograd import Variable
input = Variable(torch.randn(1, 1, 10))
output = nn.Conv1d(1, 1, 3, padding=1)(input)  # fine
output = nn.Conv1d(1, 1, 3, padding=1.0)(input)  # error

Pesan kesalahan ini dilemparkan oleh TupleParser , di mana ia tidak tahu param mana yang diuraikan tetapi hanya indeks param (dalam daftar args).

Karena pengurai Tuple hanya digunakan untuk menguraikan param ke autograd.functions.* , kami dapat memperluas fungsi TupleParser::parse untuk juga mengambil nama param sehingga dapat meneruskannya ke TupleParser::invalid_type ke melempar kesalahan mana yang lebih berarti?

Atau kita bisa menambahkan pemeriksaan tipe ini di level python?

@apaszke @soumith Saya senang mengirim PR, jika Anda memberi tahu saya metode mana yang Anda sukai/alternatif.

menambahkan nama param ke parser Tuple terdengar bagus untuk saya

Apakah halaman ini membantu?
0 / 5 - 0 peringkat