随笔分类 - Deep Learning
摘要:在金融风控领域当中,模型可解释性相当重要。我对nips的论文《Monotonic Networks》当中的单调神经网络进行了复现,在权重为正的情况下,我们就称该神经网络为单调神经网络,因为不管如何进行输入,我们输出都会呈现出单调性,也就是输入越大,输出越大。或者输入越大,输出越小。传统的单调神经网络
阅读全文
摘要:方法一: 首先编写模型结构: class Model(nn.Module): def __init__(self): super(Model,self).__init__() self.l1=nn.Linear(100,50) self.l2=nn.Linear(50,10) self.l3=nn.
阅读全文
摘要:实现代码如下: import torch.functional as F class LeNet(torch.nn.Module): def __init__(self): super(LeNet, self).__init__() # 1 input image channel (black &
阅读全文
摘要:保存模型: torch.save(model, 'model.pth') 加载模型: model = torch.load('model.pth')
阅读全文
摘要:自定义数据集的代码如下: import os import pandas as pd from torchvision.io import read_image class CustomImageDataset(Dataset): def __init__(self, annotations_fil
阅读全文
摘要:其实构建rnn的代码十分简单,但是实际上看了下csdn以及官方tutorial的解释都不是很详细,说的意思也不能够让人理解,让大家可能会造成一定误解,因此这里对rnn的参数做一个详细的解释: self.encoder = nn.RNN(input_size=300,hidden_size=128,d
阅读全文
摘要:最近复习了一下卷积神经网络,好久没看都搞忘了。 计算特征图的公式如下: 其中n表示原来图像的大小,p表示padding的大小,f表示filter的大小,s表示stride,计算完成之后向下取整,就可以了。这里记录一下这个公式,以免自己搞忘了。同时,还有一个容易搞忘的地方是,在图像的卷积当中,一组fi
阅读全文
摘要:在pytorch当中,我们经常会用到x.view()方法来进行数据维度的变化,但是这个方法具体该如何使用呢? 下面我来记录一下笔记: 一.按照传入数字使数据维度进行转换 首先,我们可以传入我们想要的维度,然后按照传入的数字对数据进行维度变化。比如,x.view()当中可以放入列表或者是单个数字,比如
阅读全文
摘要:在pytorch当中,有两种方式可以实现交叉熵,而我们把softmax概率传入传入对数似然损失得到的损失函数叫做“交叉熵损失” 在pytorch当中有两种方法实现交叉熵损失: 实现方式1: criterion=nn.CrossEntropyLoss() loss=criterion(input,ta
阅读全文
摘要:一.导论 目前深度学习已经在2D计算机视觉领域取得了非凡的成果,比如使用一张图像进行目标检测,语义分割,对视频当中的物体进行目标跟踪等任务都有非常不错的效果。传统的3D计算机视觉则是基于纯立体几何来实现的,而目前我们使用深度学习在3D计算机视觉当中也可以得到一些不错的效果,目前甚至有超越传统依靠立体
阅读全文
摘要:一.梯度下降 梯度下降就是最简单的用于神经网络当中用于更新参数的用法,计算loss的公式如下: 有了loss function之后,我们立马通过这个loss求解出梯度,并将梯度用于参数theta的更新,如下所示: 这样做之后,我们只需要遍历所有的样本,就可以得到一个最终的参数theta了,这个参数可
阅读全文
摘要:小编在市面看了很多介绍计算机视觉的知识,感觉都非常深奥,难以理解和入门。因此总结出了一套容易理解的教程,希望能够和大家分享。 一.人工神经网络 人工神经网络是一种模拟人脑构建出来的神经网络,每一个神经元都具有一定的权重和阈值。仅有单个神经元的图例如下所示: 从中可以看到每一个神经元具有一个输入Inp
阅读全文
摘要:Dropout层在神经网络层当中是用来干嘛的呢?它是一种可以用于减少神经网络过拟合的结构,那么它具体是怎么实现的呢? 假设下图是我们用来训练的原始神经网络: 一共有四个输入x_i,一个输出y。Dropout则是在每一个batch的训练当中随机减掉一些神经元,而作为编程者,我们可以设定每一层dropo
阅读全文
摘要:一. 导论 SPP-Net是何凯明在基于R-CNN的基础上提出来的目标检测模型,使用SPP-Net可以大幅度提升目标检测的速度,检测同样一张图片当中的所有目标,SPP-Net所花费的时间仅仅是RCNN的百分之一,而且检测的准确率甚至会更高。那么SPP-Net是怎么设计的呢?我们要想理解SPP-Net
阅读全文
摘要:一.简介 在人工智能领域内,GAN是目前最为潮流的技术之一,GAN能够让人工智能具备和人类一样的想象能力。只需要给定计算机一定的数据,它就可以自动联想出相似的数据。我们学习和使用GAN的原因如下: 1.能够用GAN进行无监督学习:深度学习需要大量数据的标注才能够进行监督学习,而使用GAN则不需要使用
阅读全文
摘要:一.神经网络压缩 在如今人工智能的浪潮之下,深度学习在不少领域都取得了不错的成果。但是目前在边缘计算,物联网设备上的算力相比于我们的台式计算机还不太充足,我们在计算机上用于拟合的神经网络参数过多,不太适合运行在算力较弱的设备上,比如无人机,手机,平板电脑,自动驾驶汽车等等。因此我们需要将在计算机上训
阅读全文
摘要:一.迁移学习的概念 什么是迁移学习呢?迁移学习可以由下面的这张图来表示: 这张图最左边表示了迁移学习也就是把已经训练好的模型和权重直接纳入到新的数据集当中进行训练,但是我们只改变之前模型的分类器(全连接层和softmax/sigmoid),这样就可以节省训练的时间的到一个新训练的模型了! 但是为什么
阅读全文
摘要:在图像分类领域内,其中的大杀器莫过于Resnet50了,这个残差神经网络当时被发明出来之后,顿时毁天灭敌,其余任何模型都无法想与之比拟。我们下面用Tensorflow来调用这个模型,让我们的神经网络对Fashion-mnist数据集进行图像分类.由于在这个数据集当中图像的尺寸是28*28*1的,如果
阅读全文
摘要:在我们使用tensorflow时,如果不能使用函数式api进行编程,那么一些复杂的神经网络结构就不会实现出来,只能使用简单的单向模型进行一层一层地堆叠。如果稍微复杂一点,遇到了Resnet这种带有残差模块的神经网络,那么用简单的神经网络堆叠的方式则不可能把这种网络堆叠出来。下面我们来使用函数式API
阅读全文
摘要:tensorflow搭建卷积神经网络非常简单,我们使用卷积神经网络对fashion mnist数据集进行图片分类,首先导包: import tensorflow as tf from tensorflow import keras import matplotlib.pyplot as plt im
阅读全文