学习pytorch-使用Torch搭建一个简单神经网络

a.pyimport torch
import numpy as np
#生成一个五行四列的二维矩阵
print(torch.Tensor(5, 4))
# 返回的数组大小是5x4的矩阵,初始化是0~1的均匀分布
x=torch.rand(5, 4)
print(torch.randn(5, 4))
print(x)
#查看x的形状
print(x.size())
# numpy 类似的返回5x4大小的矩阵
print(np.ones((5, 4)))
#  类似的返回5x4大小的张量
print(torch.ones(5,4))
#返回5x4大小的张量 对角线上全1,其他全0
print(torch.eye(5,4))
print(torch.arange(1,5,1))
print(torch.linspace(1,5,2))
#服从正太分布
#print(torch.normal(-1,2))
print(torch.randperm(2))
#numpy转换成Tensor
a = torch.ones(5)
b=a.numpy()
print(b)
#Tensor转换成numpy
a= np.ones(5)
b=torch.from_numpy(a)
print(b)
#True支持GPU,False不支持
print(torch.cuda.is_available())
b.py#torch.autograd.Variable 实现自动求导
"""
本质上Variable和Tensor没有什么区别,
不过Variable会放在一个计算图里面,
可以进行前向传播和反向传播以及求导
"""
import torch
from torch.autograd import Variable
# requires_grad 表示是否对其求梯度,默认是False
x = Variable(torch.Tensor([3]), requires_grad=True)
y = Variable(torch.Tensor([5]), requires_grad=True)
z = 2 * x * x + y * y + 4
# 对 x 和 y 分别求导
z.backward()
# x 的导数和 y 的导数
#x =3*2*2
#y = 5*2
print(‘dz/dx: {}‘.format(x.grad.data))
print(‘dz/dy: {}‘.format(y.grad.data))
c.pyfrom torch import nn
import torch
from torch.autograd import Variable
import torch.nn.functional as F
"""所依赖的主要是 torch.nn 和 torch.nn.functional

torch.nn 里面有着所有的神经网络的层的操作,其用来构建网络,
只有执行一次网络的运算才执行一次

torch.nn.functional 表示的是直接对其做一次向前运算操作"""

# 基本的网络构建类模板
class net_name(nn.Module):
    def __init__(self,opt):
        super(net_name, self).__init__()
        # 可以添加各种网络层
        self.maina = nn.Sequential(
         # #使用反卷积  没有零填充,单位步幅。
         nn.ConvTranspose2d(100, opt.nz * 8, 3, 1,0, bias=False),
         nn.BatchNorm2d(opt.nz * 8),
         nn.ReLU(True),
         #计算公式 o = i+(k-1) = 7
         #10*512*7*7

          # 使用反卷积  有填充,单位步幅。
         # nn.ConvTranspose2d(100, opt.nz * 8, 3, 1, 1, bias=False),
         # nn.BatchNorm2d(opt.nz * 8),
         # nn.ReLU(True),
         # 计算公式 o = i+(k-1)-2p = 2 +2 -2=2
         # 10*512*2*2

         # 使用反卷积  全填充。
         # nn.ConvTranspose2d(100, opt.nz * 8, 3, 1, 2, bias=False),
         # nn.BatchNorm2d(opt.nz * 8),
         # nn.ReLU(True),
         # 计算公式 o = i-(k-)*2
         # 10*512*3*3

        nn.Conv2d(opt.nz * 8, opt.nz * 16, 3, 1, 0, bias=False),
        nn.BatchNorm2d(opt.nz * 16),
        nn.ReLU(True),

         #计算公式 o = (i-k)+1
         #10*256*2*2
        )
        # 具体每种层的参数可以去查看文档

    def forward(self, input):
        return self.maina(input)
class Config(object):

    nz = 64
    gpu = False  # 是否使用GPU
    gen_img = ‘2018.png‘
opt = Config()
if __name__ == ‘__main__‘:
    a = torch.randn(10, 100,5,5)
    noises = Variable(a, volatile=True)
    d = net_name(opt).forward(noises)
    print(d)

原文地址:https://www.cnblogs.com/dudu1992/p/8977288.html

时间: 2024-10-31 09:10:21

学习pytorch-使用Torch搭建一个简单神经网络的相关文章

使用 Nodejs 搭建一个简单的Web服务器

使用Nodejs搭建Web服务器是学习Node.js比较全面的入门教程,因为要完成一个简单的Web服务器,你需要学习Nodejs中几个比较重要的模块,比如:http协议模块.文件系统.url解析模块.路径解析模块.以及301重定向问题,下面我们就简单讲一下如何来搭建一个简单的Web服务器. 作为一个Web服务器应具备以下几个功能: 1.能显示以.html/.htm结尾的Web页面 2.能直接打开以.js/.css/.json/.text结尾的文件内容 3.显示图片资源 4.自动下载以.apk/.

使用idea搭建一个简单的SSM框架:(3)配置spring+mybatis

在此之前请先查看: 使用idea搭建一个简单的SSM框架:(1)使用idea创建maven项目 使用idea搭建一个简单的SSM框架:(2)配置springMVC 1 配置spring和mybatis整合文件 spring和mybatis整合分为三个步骤:(1)配置数据库,(2)配置SqlSessionFactoryBean (来自mybatis-spring),(3)配置MapperScannerConfigurer,该配置就我们通过接口定义的方法,就是mybatis的xml对应的namesp

【转】使用webmagic搭建一个简单的爬虫

[转]使用webmagic搭建一个简单的爬虫 刚刚接触爬虫,听说webmagic很不错,于是就了解了一下. webmagic的是一个无须配置.便于二次开发的爬虫框架,它提供简单灵活的API,只需少量代码即可实现一个爬虫. 这句话说的真的一点都不假,像我这样什么都不懂的人直接下载部署,看了看可以调用的方法,马上就写出了第一个爬虫小程序. 以下是我学习的过程: 首先需要下载jar:http://webmagic.io/download.html 部署好后就建一个class继承PageProcesso

用nodejs搭建一个简单的服务器

使用nodejs搭建一个简单的服务器 nodejs优点:性能高(读写文件) 数据操作能力强 官网:www.nodejs.org 验证是否安装成功:cmd命令行中输入node -v 如果显示版本号表示安装成功 [常用命令] 切换盘符 d:进入文件夹 cd nodejs返回上一级目录 cd..清屏 cls展示目录 dir复制文件名 选中右键--复制历史操作 上箭头 执行文件 node 文件名(在文件文件夹目录中)停止命令行 ctrl+c nodejs可以使用的ECMAScript.读写文件.数据库操

[转]Docker学习笔记之一,搭建一个JAVA Tomcat运行环境

本文转自:http://www.blogjava.net/yongboy/archive/2013/12/12/407498.html 前言 Docker旨在提供一种应用程序的自动化部署解决方案,在 Linux 系统上迅速创建一个容器(轻量级虚拟机)并部署和运行应用程序,并通过配置文件可以轻松实现应用程序的自动化安装.部署和升级,非常方便.因为使用了容器,所以可以很方便的把生产环境和开发环境分开,互不影响,这是 docker 最普遍的一个玩法.更多的玩法还有大规模 web 应用.数据库部署.持续

学生成绩管理后台第二项任务:初步建模,搭建一个简单的网站

负责人:程琳茹 合伙人:李玉婷 签约员工:闫玉荣 前言:学生成绩管理后台,看起来是一个简单的项目,但是对于我们今后的发展很重要,建设一个管理后台有很多方法,这里我们主要使用Rstudio,在之后的文章中,会详细给出我们小组完成项目的过程与遇到的问题,欢迎大家借鉴,此外,同学们要积极参与讨论. 项目步骤:1.熟悉与安装Rstudio,并且配置好R内部环境. 2.建立好文件所存放的位置与确保文档可以正常使用. 3.搭建一个简单的网站,分别分为server.R端口与ui.R端口. 4.搭建好网站后,插

Docker学习笔记之一,搭建一个JAVA Tomcat运行环境

前言 Docker旨在提供一种应用程序的自动化部署解决方案,在 Linux 系统上迅速创建一个容器(轻量级虚拟机)并部署和运行应用程序,并通过配置文件可以轻松实现应用程序的自动化安装.部署和升级,非常方便.因为使用了容器,所以可以很方便的把生产环境和开发环境分开,互不影响,这是 docker 最普遍的一个玩法.更多的玩法还有大规模 web 应用.数据库部署.持续部署.集群.测试环境.面向服务的云计算.虚拟桌面 VDI 等等. 主观的印象:Docker 使用 Go 语言编写,用 cgroup 实现

node搭建一个简单的服务器

搭建一个简单的服务器 1 引入http模块 两个参数 req: request 请求 res: responese 响应 module require('mod1') node_modules 文件 require('./mode1') 发布自己的模块 去 npmjs.com 去注册一个账户 在控制台中 npm login username password email npm init npm publish cnpm install express const express = requi

搭建一个简单的DHCP服务器

实验环境: 系统:RHEL6.4 一.给DHCP服务器配置固定IP [[email protected] ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 HWADDR=....... TYPE=Ethernet UUID=...... ONBOOT=yes NM_CONTROLLED=yes BOOTPROTO=static IPADDR=192.168.50.253 NETMASK=255.255.255.0 [[em