问题是关于PyTorch 网站上的数据加载教程。我不知道他们是怎么写的价值mean_pix和std_pix的在transforms.Normalize不用计算
我无法在 StackOverflow 上找到与此问题相关的任何解释。
import torch
from torchvision import transforms, datasets
data_transform = transforms.Compose([
transforms.RandomSizedCrop(224),
transforms.RandomHorizontalFlip(),
transforms.ToTensor(),
transforms.Normalize(mean=[0.485, 0.456, 0.406],
std=[0.229, 0.224, 0.225])
])
hymenoptera_dataset = datasets.ImageFolder(root='hymenoptera_data/train',
transform=data_transform)
dataset_loader = torch.utils.data.DataLoader(hymenoptera_dataset,
batch_size=4, shuffle=True,
num_workers=4)
Run Code Online (Sandbox Code Playgroud)
价值mean=[0.485,0.456, 0.406]和std=[0.229, 0.224, 0.225]对我来说并不明显。他们如何得到它们?为什么他们等于这些?
我有一个以“_”作为参数的匿名函数,我不知道它的含义以及为什么在这里使用它。
函数是:
f = lambda _: model.loss(X, y)[0]
grad_num = eval_numerical_gradient(f, model.params[name], verbose=False, h=1e-5)
模型损失:
def loss(self, X, y=None):
# Unpack variables from the params dictionary
W1, b1 = self.params['W1'], self.params['b1']
W2, b2 = self.params['W2'], self.params['b2']
h1, h1_cache = affine_relu_forward(X, W1, b1)
scores, h2_cache = affine_forward(h1, W2, b2)
# If y is None then we are in test mode so just return scores
if y is None:
return scores
loss, grads = 0, {}
loss, dscores = softmax_loss(scores, y)
loss …Run Code Online (Sandbox Code Playgroud)