PyTorch入门2

el/2023/9/24 23:03:24

神经网络

  1. 全连接神经网络:

     nn.Linear() 是pytorch里面的线性模块,也就是全连接层,主要参数有inputs_size:输入的数据大小outputs_size:输出的数据的大小bias: 表示是否使用偏置,是一个bool值,默认为True,样例:
    

    from torch.nn import nn

    class FullConnectionNet(nn.Module):
    def init(self):
    super(FullConnectionNet,self).init
    self.layer1 = nn.Sequential(nn.Linear(inputs_size,32,bias=False),# bias 表示是否使用偏差,默认为True
    nn.BatchNormld(32),nn.Relu(True))
    # nn.BatchNormld:用于进行批标准化
    self.layer2 = nn.Sequential(nn.Linear(32,64),nn.BatchNormld(64),nn.Relu(True))
    self.layer3 = nn.Sequential(nn.Linear(64,outputs_size))
    def forward(self,inputs):
    net = self.layer1(inputs)
    net = self.layer2(net)
    out = self.layer2(net)

         return out
    

卷积神经网络:

	nn.Conv2d()是pytorch中的二维卷积模块,里面常用的参数依次是:in_channels:表示输入的通道数(一般就根据图片的通道数来定)out_channels:表示输出的通道数,也就是卷积核的个数(自由设置或者参考经典的网络模型的参数设置)kernel_size:表示卷积核的高和宽,一般都采用宽高相等的卷积核,(3,2)表示高为3,宽为2stride:表示卷积核在图片上滑动的步长,默认为1padding: padding=1表示四周进行一个像素点的零填充,依次类推nn.Maxpool2d()是pytorch里面的最大池化模块,常用参数有:kernel_size,stride,padding,都跟上面一样,不再赘述样例(以LeNet为例)from torch.nn import nnclass LeNet(nn.Module):def __init__(self,input_channels,n_class):input_channels n_classsuper(LeNet,self).__init__()self.conv1 = nn.Sequential(nn.Conv2d(input_channels,6,kernel_size=5,stride=1,padding=1,bias=Ture),nn.AvgPool2d(kernel_size=2,stride=2,padding=1))self.conv2 = nn.Sequential(nn.Conv2d(6,6,kernel_size=5,stride=1,padding=1,bias=Ture),nn.AvgPool2d(kernel_size=2,stride=2,padding=1))self.conv3 = nn.Sequential(nn.Conv2d(6,16,kernel_size=5,stride=1,padding=1,bias=Ture))self.linear = nn.Sequential(nn.Linear(400,120),nn.Linear(120,84),nn.Linear(84,n_class))  # emmm,待验证,哈哈哈,我不想去试了^0^!!def forward(x):net = self.conv1(x)net = self.conv2(net)net = self.conv3(net)net = net.view(net.size(0),-1)out = self.linear(net)return out      

参考书籍:《深度学习入门之PyTorch》


http://www.ngui.cc/el/3577062.html

相关文章

数据结构单链表的循环链表及基本操作实现(C语言实现)

循环链表的基本操作的实现 特点&#xff1a;循环链表可以从任意一个位置循环遍历整个链表&#xff0c;如果设置的的为尾指针的话&#xff0c;其操作头节点后为节点的时间复杂度外O(1); 其实现代码如下 #include <stdio.h> #include <stdlib.h> #include <stdb…

Pytorch中GPU训练好模型CPU下使用

GPU训练模型在CPU下使用 今天我想试试那个SkyAR,但是我没找到GPU的电脑我就想在CPU下使用GPU训练好的模型&#xff0c;使用的时遇到了下面这个问题 RuntimeError: Attempting to deserialize object on a CUDA device but torch.cuda.is_available() is False. If you are ru…

C++按照空格分割字符串

C /A/B/1 1024 C /A/B/2 1024 C /A/B/1/3 1024 C /A 1024 R /A/B/1/3 Q / 0 1500 C /A/B/1 100 Q / 0 1500 R /A/B Q / 0 1 当我们需要处理上述数据时&#xff0c;其中有空格作为标志进行分割我们可以采取C中的一个处理string的标准库sstream。 操作方法如下&#xff1a; stri…

删除含有头结点的单链表中的最小值的结点

删除有头节点的单链表中的最小值的结点 #include <iostream>using namespace std;typedef struct node {int data;struct node *next; } LNode;void Del_minNode(LNode *L);LNode *CreateLink(const int data[], int n);void PrtLink(LNode *L);int main() {int n 6;int…

循环队列出队与入队

循环队列的入队与出队 #include <iostream>#define MaxSize 10using namespace std;typedef struct Node {int data[MaxSize];int front, rear; //队首&#xff0c;队尾指针 } SQueue;SQueue *init_queue();int En_queue(SQueue &qu, int x);int De_queue(SQueue &a…

邻接表创建有向图

使用邻接表创建有向图&#xff0c;可以使用数组链表的方式创建。 定义的顶点表如下 生成代码如下 char c; for (int i 0; i < graph->n; i) {cin >> c;graph->adj_list[i].data c;graph->adj_list[i].first_arc nullptr; }我们的图的整体结构如下图所示…

线索二叉树(先序)

#include <iostream>using namespace std;typedef struct ThBTNode {char data;ThBTNode *l_child;ThBTNode *r_child;int l_tag, r_tag;//l_tag1表示指向前驱&#xff0c;l_tag0表示指向左孩子//r_tag1表示指向后继&#xff0c;r_tag0表示指向右孩子 } ThBTNode;ThBTNod…

统计二叉树的叶子节点个数

#include <iostream> #include <queue>using namespace std;typedef struct node {char data;struct node *lchild;struct node *rchild; } TNode;TNode *CreateTree(TNode *&t);int Count(TNode *t); //统计t的叶子节点个数,非递归 int R_Count(TNode *t); //…

选择排序之选择排序

选择排序的思路很简单&#xff0c;就是左端为有序段&#xff0c;右端为待排序段&#xff0c;设置一个标志位&#xff0c;分割左右两端&#xff0c;外层循环控制标志位往后移&#xff0c;内层循环用于寻找无需段的最小值 #include <iostream>using namespace std;void Se…

创建一个简单的jsp跳转界面

创建环境&#xff1a;eclipsemaventomcatmysql 一&#xff1a;在eclipse下一次点击file-->new-->other-->maven-->maven project--> 如下图&#xff1a;勾选前两项 点击next,页面如下所示&#xff1a; Group id 和Artifact id 自己设定&#xff0c;Packaging将…