深度学习相关
文章平均质量分 68
学习过程中的收获
comli_cn
算法工程师
展开
-
手推RNN反向传播
手推了RNN的反向传播过程,相信对各位理解RNN的深层机理大有裨益。原创 2022-06-05 20:30:40 · 927 阅读 · 0 评论 -
精确率、准确率、召回率、ROC、AUC的概念,计算方式和代码实现
1. 阳性和阴性生活中最常见用到阳性和阴性的地方是检测疾病的时候,这时候检测的是患者有没有得病,有的话就是阳性,没有的话就是阴性。但这里的阴性和阳性代表什么是认为规定的,在机器学习中有正样本和负样本,更具体一点在机器学习的异常检测中有正常值和异常值,但在这个领域正值或正常值一般用阳性来表示,而负值或异常值一般用阴性来表示。2.混淆矩阵既然要对样本进行学习然后用模型预测测试集样本是正样本还是负样本,那么就必然有以下几种情况:∙\bullet∙真阳性:标签为真,预测也为真∙\bullet∙真阴性:条原创 2021-01-17 20:02:21 · 5155 阅读 · 1 评论 -
torch.nn.Conv1d,torch.nn.Conv2d和torch.nn.Conv3d的应用和相关计算
1. torch.nn.Conv1d和MaxPool1dConv1d()函数就是利用指定大小的一维卷积核对输入的多通道一维输入信号进行一维卷积操作的卷积层。因为卷积神经网络一般用来处理图片数据,常使用torch.nn.Conv2d,所以torch.nn.Conv1d不太常见,但事实上卷积神经网络也是可以处理非图片的一维数据的。用MaxPool1d只对输入的最后一维进行最大池化,用MaxPool2d会对输入的最后两维都进行最大池化。...原创 2021-01-13 16:02:40 · 2036 阅读 · 0 评论 -
神经网络是如何解决异或问题的?
对下图所示的坐标图进行0和1的分类,如果用线性的分类器进行分类的话我们发现无法用一根线将0和1分开。上图中的绿色圈表示“或”运算,紫色圈表示“与非”运算,因为这两种运算都可以通过单层感知机实现,最后深蓝色的圈表示“与”运算,也是可以通过单层感知机实现的。通过这一系列的运算我们便实现了异或运算。...原创 2020-10-20 17:12:40 · 4795 阅读 · 1 评论 -
CNN的输入输出运算过程及其Pytorch实现
0. 卷积神经网络的结构如上图所示,一个卷积神经网络由若干卷积层、池化层、全连接层组成。我们可以通过对其中要素的重组来构成不同的卷积神经网络。构成不同卷积神经网络的公式为:INPUT−>[[CONV]∗N−>POOL?]∗M−>[FC]∗KINPUT -> [[CONV]*N -> POOL?]*M -> [FC]*KINPUT−>[[CONV]∗N−>POOL?]∗M−>[FC]∗K以上图为例,其结构为:INPUT−>[[CONV]∗1−原创 2020-06-17 09:10:51 · 8553 阅读 · 8 评论 -
如何理解LSTM的输入输出格式
1. 定义LSTM结构bilstm = nn.LSTM(input_size=10, hidden_size=20, num_layers=2, bidirectional=True)定义一个两层双向的LSTM,input size为10,hidden size为20。注:定义过LSTM的结构后,同一个程序下面的input_size,hidden_size,num_layers应该与这里的...原创 2020-04-02 22:15:22 · 21905 阅读 · 5 评论 -
Pytorch中使用backward()求导详解
backward()是Pytorch中用来求梯度的方法,可以分为三种情况来使用。1.out.backwark()中out是一个标量此时可以直接使用out.backwark():import torchfrom torch.autograd import Variable#生成一个内容为[2,3]的张量,Varibale 默认是不要求梯度的,如果要求梯度,#需要加上requires_g...原创 2020-03-06 14:58:15 · 8125 阅读 · 4 评论 -
RuntimeError: Expected object of scalar type Double but got scalar type Float for argument #2 'mat2'
解决方法是将用到的数据进行类型转换:原来:prediction, h_state = rnn(x, h_state)加上类型转换:x = torch.tensor(x, dtype=torch.float32)prediction, h_state = rnn(x, h_state)...原创 2020-03-02 14:11:55 · 5819 阅读 · 0 评论 -
如何搭建LSTM(pytorch版)
1.rnn = nn.LSTM(input_size,hidden_size,num_layers)rnn = nn.LSTM(10, 20, 2) #(input_size,hidden_size,num_layers)括号里面第一个参数input_size是输入向量的维度,第二个参数hidden_size是隐藏层向量的维度,第三个参数num_layers代表循环层的数量。第三个参数n...原创 2020-02-27 15:14:01 · 13929 阅读 · 7 评论 -
深度学习中张量的通俗理解及张量的创建
1.深度学习中张量的作用深度学习中张量主要是为了便于用数字来描述一个对象,比方说要描述一张彩色图片,我们可以用(长,宽,颜色)来描述,所以描述一张彩色图片就需要用到三维张量,如果我们要描述一个彩色图片的集合那么就要就需要用(图片序号,长,宽,颜色)来描述,所以描述一个彩色图片的集合就需要用到四维张量。2.深度学习中张量的表达形式0维张量:[1]0维张量就是一个标量,说白了就是一个数字。...原创 2020-02-24 16:52:39 · 3131 阅读 · 0 评论 -
交叉熵损失函数
交叉熵损失函数.交叉熵.原创 2019-10-19 09:55:00 · 457 阅读 · 0 评论 -
mxnet中自动求梯度
我用的是mxnet包里面的自动求梯度的模块autograd。一、在autograd下求梯度一般要进行一下几个步骤:1、调用attach_grad()函数来申请存储梯度所需要的内存。要对一个函数求关于某个变量求梯度就用那个变量名来调用attach_grad()函数,如y=xTxy={x}^\mathsf{T}{x}y=xTx求有关变量x的梯度,则:x.attach_grad()2、调⽤rec...原创 2019-10-17 21:45:50 · 949 阅读 · 0 评论