如何用华为云服务器做网站,韩国足球出线,3d装修设计软件手机版,网站兼容模式怎么设置16自定义层
import torch
import torch.nn.functional as F
from torch import nnclass CenteredLayer(nn.Module):def __init__(self):super().__init__()#从其输入中减去均值#X.mean() 计算的是整个张量的均值#希望计算特定维度上的均值#xff0c;可以传递 dim 参数。#例如…16自定义层
import torch
import torch.nn.functional as F
from torch import nnclass CenteredLayer(nn.Module):def __init__(self):super().__init__()#从其输入中减去均值#X.mean() 计算的是整个张量的均值#希望计算特定维度上的均值可以传递 dim 参数。#例如每一列均值X.mean(dim0)def forward(self, X):return X - X.mean()layer CenteredLayer()torch.FloatTensor: 这是 PyTorch 中的一种张量类型专门用于存储浮点数数据。
尽管 torch.FloatTensor 是创建浮点张量的一种方式
但在 PyTorch 的最新版本中建议使用 torch.tensor 函数
因为它更加通用和灵活。
#均值为 3.0
print(layer(torch.FloatTensor([1, 2, 3, 4, 5])))
#tensor([-2., -1., 0., 1., 2.])net nn.Sequential(nn.Linear(8, 128), CenteredLayer())torch.rand和torch.randn有什么区别
一个均匀分布 [0,1) 一个是标准正态分布。Y net(torch.rand(4, 8))
print(Y.mean())
#tensor(-6.5193e-09, grad_fnMeanBackward0)#带参数的层
#实现自定义版本的全连接层该层需要两个参数一个用于表示权重另一个用于表示偏置项。
在此实现中我们使用修正线性单元作为激活函数。
该层需要输入参数in_units和units分别表示输入数和输出数。class MyLinear(nn.Module):def __init__(self, in_units, units):super().__init__()#nn.Parameter 是一种特殊的张量会被自动添加到模型的参数列表中。self.weight nn.Parameter(torch.randn(in_units, units))self.bias nn.Parameter(torch.randn(units,))def forward(self, X):linear torch.matmul(X, self.weight.data) self.bias.datareturn F.relu(linear)linear MyLinear(5, 3)
print(linear.weight)tensor([[ 0.7130, -1.0828, 0.2203],[-2.0417, -0.1385, 0.6858],[-0.5163, -0.6009, 0.0783],[-0.3642, 0.5252, -0.6144],[-0.6479, -0.4700, 0.1486]], requires_gradTrue)#使用自定义层直接执行前向传播计算。
print(linear(torch.rand(2, 5)))tensor([[0.0000, 0.0000, 0.2741],[0.0000, 0.0000, 0.5418]])
#使用自定义层构建模型就像使用内置的全连接层一样使用自定义层。
net nn.Sequential(MyLinear(64, 8), MyLinear(8, 1))
print(net(torch.rand(2, 64)))tensor([[9.0080],[7.6102]])