欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

torch学习

程序员文章站 2022-05-11 11:58:00
...

张量(tensor)

生成未初始化的向量

import torch
a = torch.empty(3, 5, dtype=torch.float)

numpy和tensor转换

# tensor to numpy
a = torch.ones([5, 3], dtype=torch.float)
b = a.numpy()
# numpy to tensor
a = torch.from_numpy(a)

梯度(autograd)

不想要计算梯度的部分

with torch.no_grad():
    print(x.requires_grad)

数据集(dataset)

from torch.utils.data import Dataset
class MyDataset(Dataset):  
    def __init__(self):
        # something

    def __len__(self):
        return len(self.data)

    def __getitem__(self, idx):
        sample = {'image': image, 'label': label}
        return sample

常用import

import torch
import torch.autograd as autograd
import torch.nn as nn
import torch.nn.functional as F
import torch.optim as optim

tensorflow和pytorch异同

  • tf.concat 和 torch.cat
  • tf.reshape 和 view

杂项

  • detach会复制一个tensor的权值,但是不会把数据通路复制
  • F.log_softmax -> softmax + log
  • embedding层:nn.Embeding(vocab_size, vector_dim)