Как конвертировать PyTorch Tensor в Numpy ndarray - PullRequest
0 голосов
/ 16 марта 2020

У меня есть эта функция, которая вращает изображения MNIST. Функция возвращает тензор питчера. Я более знаком с Tensorflow и хочу преобразовать тензор pytorch в numpy ndarray, который я могу использовать. Есть ли функция, которая позволит мне это сделать? Я попытался немного изменить функцию, добавив. numpy () после tensor(img.rotate(rotation)).view(784) и сохранив ее в пустой ndarray, но это не сработало. Параметр d - это данные MNIST, сохраненные в .pt (думаю, pytensor). Спасибо! (Хотелось бы узнать, есть ли функция тензорного потока, которая может вращать данные.)

t = 1
min_rot = 1.0 * t / 20 * (180 - 0) + \
        0
max_rot = 1.0 * (t + 1) / 20 * \
    (180 - 0) + 0
rot = random.random() * (max_rot - min_rot) + min_rot
rotate_dataset(x_tr, rot)
def rotate_dataset(d, rotation):
    result = torch.FloatTensor(d.size(0), 784)
    tensor = transforms.ToTensor()

    for i in range(d.size(0)):
        img = Image.fromarray(d[i].numpy(), mode='L')
        result[i] = tensor(img.rotate(rotation)).view(784)
    return result

1 Ответ

0 голосов
/ 16 марта 2020

Как насчет того, чтобы не конвертировать в tensor, во-первых:

result[i] = np.array(img.rotate(rotation)).flatten()
...