Pytorch: Mensaje de error confuso cuando el relleno está configurado para flotar en nn.Conv1d

Creado en 16 may. 2017  ·  3Comentarios  ·  Fuente: pytorch/pytorch

Cuando creo una capa Conv y paso el relleno como flotante por error, recibo un mensaje de error confuso, lo que dificulta la depuración. Además, el error se lanza cuando estoy haciendo el pase hacia adelante.

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

El mensaje de error es "RuntimeError: el argumento 1 debe ser una tupla de int, no una tupla"

Todos 3 comentarios

Para aclarar, creo que podría ser útil si RuntimeError se actualiza para incluir el tipo de la tupla incorrecta, por lo que está claro que se espera que el tipo sea un 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

Este mensaje de error lo genera TupleParser , momento en el que no sabe qué parámetro está analizando, sino solo el índice del parámetro (en la lista de argumentos).

Como el analizador de tuplas solo se usa para analizar parámetros a autograd.functions.* , podríamos extender las funciones TupleParser::parse para que también tomen el nombre del parámetro para que pueda pasarlo a TupleParser::invalid_type a lanzar un error que es más significativo?

¿O podríamos simplemente agregar estas verificaciones de tipo en el nivel de python?

@apaszke @soumith Estoy feliz de enviar un PR, si me deja saber qué método prefiere/una alternativa.

agregar nombres de parámetros al analizador de tuplas me parece bien

¿Fue útil esta página
0 / 5 - 0 calificaciones