torch.nn.Modules 相当于是对网络某种层的封装,包括网络结构以及网络参数和一些操作
torch.nn.Module 是所有神经网络单元的基类
查看源码
初始化部分:
def __init__(self): self._backend = thnn_backend self._parameters = OrderedDict() self._buffers = OrderedDict() self._backward_hooks = OrderedDict() self._forward_hooks = OrderedDict() self._forward_pre_hooks = OrderedDict() self._state_dict_hooks = OrderedDict() self._load_state_dict_pre_hooks = OrderedDict() self._modules = OrderedDict() self.training = True
属性解释:
方法定义:
def forward(self, *input): raise NotImplementedError
没有实际内容,用于被子类的 forward() 方法覆盖
且 forward 方法在 __call__ 方法中被调用:
def __call__(self, *input, **kwargs): for hook in self._forward_pre_hooks.values(): hook(self, input) if torch._C._get_tracing_state(): result = self._slow_forward(*input, **kwargs) else: result = self.forward(*input, **kwargs) ... ...
实例展示
简单搭建:
import torch.nn as nn import torch.nn.functional as F class Net(nn.Module): def __init__(self, n_feature, n_hidden, n_output): super(Net, self).__init__() self.hidden = nn.Linear(n_feature, n_hidden) self.out = nn.Linear(n_hidden, n_output) def forward(self, x): x = F.relu(self.hidden(x)) x = self.out(x) return x
Net 类继承了 torch 的 Module 和 __init__ 功能
hidden 是隐藏层线性输出
out 是输出层线性输出
打印出网络的结构:
>>> net = Net(n_feature=10, n_hidden=30, n_output=15) >>> print(net) Net( (hidden): Linear(in_features=10, out_features=30, bias=True) (out): Linear(in_features=30, out_features=15, bias=True) )
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。
本文向大家介绍浅析PyTorch中nn.Linear的使用,包括了浅析PyTorch中nn.Linear的使用的使用技巧和注意事项,需要的朋友参考一下 查看源码 Linear 的初始化部分: 需要实现的内容: 计算步骤: 返回的是:input * weight + bias 对于 weight 对于 bias 实例展示 举个例子: 张量的大小由 140 x 100 变成了 140 x 50 执行的
本文向大家介绍浅析Node.js 中 Stream API 的使用,包括了浅析Node.js 中 Stream API 的使用的使用技巧和注意事项,需要的朋友参考一下 本文由浅入深给大家介绍node.js stream api,具体详情请看下文吧。 基本介绍 在 Node.js 中,读取文件的方式有两种,一种是用 fs.readFile ,另外一种是利用 fs.createReadStream 来
本文向大家介绍浅谈Pytorch中的torch.gather函数的含义,包括了浅谈Pytorch中的torch.gather函数的含义的使用技巧和注意事项,需要的朋友参考一下 pytorch中的gather函数 pytorch比tensorflow更加编程友好,所以准备用pytorch试着做最近要做的一些实验。 立个flag开始学习pytorch,新开一个分类整理学习pytorch中的一些踩到的泥
本文向大家介绍ThinkPHP中U方法的使用浅析,包括了ThinkPHP中U方法的使用浅析的使用技巧和注意事项,需要的朋友参考一下 thinkPHP中U方法的定义规则如下(方括号内参数根据实际应用决定): U('[项目://][路由@][分组名-模块/]操作? 参数1=值1[&参数N=值N]') 或者用数组的方式传入参数: U('[项目://][路由@][分组名-模块/]操作',array('参数
本文向大家介绍浅谈pytorch torch.backends.cudnn设置作用,包括了浅谈pytorch torch.backends.cudnn设置作用的使用技巧和注意事项,需要的朋友参考一下 cuDNN使用非确定性算法,并且可以使用torch.backends.cudnn.enabled = False来进行禁用 如果设置为torch.backends.cudnn.enabled =Tru
本文向大家介绍Python yield 使用浅析,包括了Python yield 使用浅析的使用技巧和注意事项,需要的朋友参考一下 初学 Python 的开发者经常会发现很多 Python 函数中用到了 yield 关键字,然而,带有 yield 的函数执行流程却和普通函数不一样,yield 到底用来做什么,为什么要设计 yield ?本文将由浅入深地讲解 yield 的概念和用法,帮助读者体会
本文向大家介绍Python中optparse模块使用浅析,包括了Python中optparse模块使用浅析的使用技巧和注意事项,需要的朋友参考一下 最近遇到一个问题,是指定参数来运行某个特定的进程,这很类似Linux中一些命令的参数了,比如ls -a,为什么加上-a选项会响应。optparse模块实现的也是类似的功能,它是为脚本传递命令参数。 使用此模块前,首先需要导入模块中的类OptionPar
本文向大家介绍浅析Java中JSONObject和JSONArray使用,包括了浅析Java中JSONObject和JSONArray使用的使用技巧和注意事项,需要的朋友参考一下 废话不多说,先给大家贴代码,具体代码如下所示: 运行结果如下: 通过构造器的方式创建的JSONObject对象:{"derek":"23","dad":"49","mom":"45"} 通过fromObject方法将ma