IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> pytorch学习笔记210801 -> 正文阅读

[人工智能]pytorch学习笔记210801

领域自适应即Domain Adaptation是迁移学习中很重要的一部分内容,目的是把分布不同的源域和目标域的数据,映射到一个特征空间中,使其在该空间中的距离尽可能近。于是在特征空间中对source domain训练的目标函数,就可以迁移到target domain上,提高target domain上的准确率。

Python class 面向对象

class Person:

x=5 #属性,在外调用Person.x

? def __init__(self, name, age):

??? self.name = name

??? self.age = age

? def myfunc(self):# 创建方法

??? print("Hello my name is " + self.name)

p1 = Person("Bill", 63)

p1.myfunc()

self: 参数是对类的当前实例的引用,用于访问属于该类的变量。它必须是类中任意函数的首个参数

del: del p1.age / del p1

pass: 类定义不能为空,但是如果您处于某种原因写了无内容的类定义语句,请使用 pass 语句来避免错误

torch.nn.module

pytorch中其实一般没有特别明显的LayerModule的区别,不管是自定义层、自定义块、自定义模型,都是通过继承Module类完成的

我们在定义自已的网络的时候,需要继承nn.Module类,并重新实现构造函数__init__构造函数和forward这两个方法。但有一些注意技巧:

(1)一般把网络中具有可学习参数的层(如全连接层、卷积层等)放在构造函数__init__()中,当然我也可以吧不具有参数的层也放在里面;

(2)一般把不具有可学习参数的层(如ReLU、dropout、BatchNormanation层)可放在构造函数中,也可不放在构造函数中,如果不放在构造函数__init__里面,则在forward方法里面可以使用nn.functional来代替

???

(3)forward方法是必须要重写的,它是实现模型的功能,实现各个层之间的连接关系的核心。运行关系是在forward里面通过functional的方法实现的。

?Eg1.

import torch

import torch.nn.functional as F

Class MyNet(torch.nn.Module):

??def __init__(self):

super(MyNet, self).__init__() #调用父类构造函数

self.conv1=torch.nn.Conv2d(3,32,3,1,1)

self.conv2=torch.nn.Conv2d(3,32,3,1,1)

self.dense1=torch.nn.Linear(32*3*3, 128)

self.dense2=torch.nn.Linear(128, 10)

??def forward(self, x):

x=self.conv1(x) #一层卷积

x= F.relu(x)# 激活

x=F.max_pool2d(x) #池化

x=self.conv2(x)

x=F.relu(x)

x=F.max_pool2d(x)

x=self.dense1(x) #线性判别器32,3,3 –(128,32,3,3)- 128

x=self.dense2(x)128 -(10,128)- 10

return x

总结:所有放在构造函数__init__里面的层的都是这个模型的固有属性.

# Conv2d(3,32,3,1,1): input 3 channels, output 32 channels, kernel size3(32 3*3*3convs), stride=1 padding=1

# Linear(32*3*3, 128) / Linear(128, 10)

PyTorchnn.Linear()是用于设置网络中的全连接层的需要注意在二维图像处理的任务中,全连接层的输入与输出一般都设置为二维张量,形状通常为[batch_size, size]

参数:(上面示例代码好像不属于这个意思)

in_features指的是输入的二维张量的大小,即输入的[batch_size, size]中的size
??out_features指的是输出的二维张量的大小,即输出的二维张量的形状为[batch_sizeoutput_size],当然,它也代表了该全连接层的神经元个数
??从输入输出的张量的shape角度来理解,相当于一个输入为[batch_size, in_features]的张量变换成了[batch_size, out_features]的输出张量。

Module类是非常灵活的,可以有很多灵活的实现方式

通过Sequential来包装层

……

参考:

pytorch教程之nn.Module类详解——使用Module类来自定义模型_MIss-Y的博客-CSDN博客

PyTorch的nn.Linear()详解_风雪夜归人o的博客-CSDN博客_nn.linear

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-08-02 10:49:09  更:2021-08-02 10:52:04 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/17 22:23:21-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码