import unittest
import torch
import torch.nn as tnn
import torch.autograd as autograd
from common import gpu_test
class TestPyTorch(unittest.TestCase):
# PyTorch smoke test based on http://pytorch.org/tutorials/beginner/nlp/deep_learning_tutorial.html
def test_nn(self):
torch.manual_seed(31337)
linear_torch = tnn.Linear(5,3)
data_torch = autograd.Variable(torch.randn(2, 5))
linear_torch(data_torch)
@gpu_test
def test_gpu_computation(self):
cuda = torch.device('cuda')
a = torch.tensor([1., 2.], device=cuda)
result = a.sum()
self.assertEqual(torch.tensor([3.], device=cuda), result)
@gpu_test
def test_cuda_nn(self):
# These throw if cuda is misconfigured
tnn.GRUCell(10,10).cuda()
tnn.RNNCell(10,10).cuda()
tnn.LSTMCell(10,10).cuda()
tnn.GRU(10,10).cuda()
tnn.LSTM(10,10).cuda()
tnn.RNN(10,10).cuda()