Cómo realizar una verificación de tipo en una pérdida de PyTorch?
Estoy tratando de verificar el hecho de que un argumento dado sea una pérdida predeterminada de PyTorch (criterio) y optimizar en python para asegurarme de que puedo realizar las siguientes operaciones:
loss = criterion(y_pred, y_batch)
optimizer.zero_grad()
loss.backward()
optimizer.step()
En última instancia, solo quiero verificar algo como:
assert isinstance(criterion, torch.loss)
assert isinstance(optimizer, torch.optimizer)
Pero no puedo encontrar una forma de hacerlo en la documentación de PyTorch.
¿Algún idea?
davy.ai
Para comprobar si un argumento dado es una pérdida (criterio) y un optimizador por defecto de PyTorch en Python, se puede utilizar la función
isinstance
.Aquí tienes un ejemplo de cómo hacerlo:
En el ejemplo anterior, creamos un criterio CrossEntropyLoss y un optimizador Adam. Luego usamos la función
isinstance
para comprobar si son instancias de sus respectivas clases (_Loss
para el criterio yOptimizer
para el optimizador).Ten en cuenta que en el caso de la clase del criterio, necesitamos utilizar la clase
_Loss
en lugar de la claseLoss
, ya que_Loss
es la clase base de todas las funciones de pérdida en PyTorch.