def test_ctor_with_numpy_array(self):
dtypes = [
np.double,
np.float,
np.float16,
np.int64,
np.int32,
np.int16,
np.uint8
]
for dtype in dtypes:
array = np.array([1, 2, 3, 4], dtype=dtype)
# Upcast
tensor = torch.DoubleTensor(array)
for i in range(len(array)):
self.assertEqual(tensor[i], array[i])
if torch.cuda.is_available():
tensor = torch.cuda.DoubleTensor(array)
for i in range(len(array)):
self.assertEqual(tensor[i], array[i])
# Downcast (sometimes)
tensor = torch.FloatTensor(array)
for i in range(len(array)):
self.assertEqual(tensor[i], array[i])
tensor = torch.HalfTensor(array)
for i in range(len(array)):
self.assertEqual(tensor[i], array[i])
if torch.cuda.is_available():
tensor = torch.cuda.FloatTensor(array)
for i in range(len(array)):
self.assertEqual(tensor[i], array[i])
# CUDA HalfTensor is not supported on Windows yet
if not IS_WINDOWS:
tensor = torch.cuda.HalfTensor(array)
for i in range(len(array)):
self.assertEqual(tensor[i], array[i])
评论列表
文章目录