神经网络
小石学CS
这个作者很懒,什么都没留下…
展开
-
基于Pytorch的cifar10分类网络模型
Pytorch作为新兴的深度学习框架,目前的使用率正在逐步上升。相比TensorFlow,Pytorch的上手难度更低,同时Pytorch支持对图的动态定义,并且能够方便的将网络中的tensor格式数据与numpy格式数据进行转换,使得其对某些特殊结构的网络定义起来更加方便,但是Pytorch对于分布式训练之类的支持相对较差,同时没有Tensorboard之类的工具对网络进行方便的可...原创 2018-11-20 20:55:56 · 19616 阅读 · 7 评论 -
基于Pytorch的卷积神经网络剪枝
本篇博客对网络剪枝的实现方法主要在https://jacobgil.github.io/deeplearning/pruning-deep-learning的基础上进行了相应修改而完成,所参考的论文为https://arxiv.org/abs/1611.06440。本篇博客所使用的代码见https://github.com/PolarisShi/purning。 网络...原创 2018-12-17 11:30:37 · 14009 阅读 · 14 评论 -
知识蒸馏(Knowledge Distillation)的Pytorch实现以及分析
知识蒸馏(Knowledge Distillation)的概念由Hinton大神于2015年在论文《Distilling the Knowledge in a Neural Network》中提出,论文见:https://arxiv.org/abs/1503.02531。此方法的主要思想为:通过结构复杂、计算量大但是性能优秀的教师神经网络,对结构相对简单、计算量较小的学生神经网络进行...原创 2018-12-01 20:26:59 · 22020 阅读 · 12 评论 -
DenseNet结构与传统卷积结构对比
在resnet结构被提出后,kaggle上出现了大量resnet与其他类型的网络结构如unet等相结合的混合结构,即使用残差块替换Unet中的卷积层,以达到增加网络层数、减轻梯度消失等效果。为了实验Dense结构是否也能够较好的替换常规的卷积结构,这篇博客中使用Pytorch编写了用于Cifar10分类问题的传统卷积神经网络结构以及DenseNet,并进行对比。 传统...原创 2018-11-27 11:59:39 · 1007 阅读 · 0 评论 -
基于Pytorch实现网络可视化(CS231n assignment3)
这篇博客主要是对CS231n assignment3中的网络可视化部分进行整理。我使用的是Pytorch框架完成的整个练习,但是和Tensorflow框架相比只是实现有些不一样而已,数学原理还是一致的。 在这个练习中,我们主要实现了三个部分的内容,分别是: 1. 特征图(saliency map)。在一个卷积神经网络中,输入的图片所对应的各个卷积层的输...原创 2018-11-25 21:15:17 · 1202 阅读 · 1 评论 -
基于Pytorch实现风格迁移(CS231n assignment3)
风格迁移由Gatys等与2015年提出,论文:https://www.cv-foundation.org/openaccess/content_cvpr_2016/papers/Gatys_Image_Style_Transfer_CVPR_2016_paper.pdf。本篇博客基于CS231n课程2017年Pytorch版本的作业内容,对其进行实现。 风格迁移主要目...原创 2018-11-26 10:03:47 · 1475 阅读 · 0 评论 -
Pytorch实现DenseNet结构
在上一篇博客中说到,由于框架结构的原因,Keras很难实现DenseNet的内存优化版本。在这一篇博客中将参考官方对DenseNet的实现,来写基于Pytorch框架实现用于cifar10数据集分类的DenseNet-BC结构。网络中各模块的一些个人理解请看之前的博客,传送门:https://blog.csdn.net/shi2xian2wei2/article/details/84...原创 2018-11-24 21:26:52 · 4155 阅读 · 1 评论 -
Keras实现DenseNet结构
DenseNet结构在16年由Huang Gao和Liu Zhuang等人提出,并且在CVRP2017中被评为最佳论文。论文地址:https://arxiv.org/abs/1608.06993v3。网络的核心结构为如下所示的Dense块,在每一个Dense块中,存在多个Dense层,即下图所示的H1~H4。各Dense层之间彼此均相互连接,即H1的输入为x0,输出为x1,H2的输入...原创 2018-11-24 20:00:45 · 12748 阅读 · 5 评论 -
Keras实现Unet结构
在之前发的博客“基于卷积神经网络特征图的二值图像分割”中(https://blog.csdn.net/shi2xian2wei2/article/details/84329511)也提到,Unet结构主要是通过多个多通道特征图最大化的利用输入图片的特征,使得网络在训练集较小的情况下也能够得到较好的目标分割结果。Unet论文见https://arxiv.org/abs/1505.045...原创 2018-11-22 18:25:48 · 19502 阅读 · 52 评论 -
Keras中卷积LSTM的使用
Keras官方自带了很多实用的模型教程,地址在https://github.com/keras-team/keras/tree/master/examples,这里主要是conv_lstm.py的基础上进行了一定修改,来实现一个非常简单的运动预测模型。 首先导入库函数:from keras.models import Sequentialfrom keras....原创 2018-11-22 15:22:56 · 7252 阅读 · 5 评论 -
基于卷积神经网络特征图的二值图像分割
目标检测是当前大火的一个研究方向,FasterRCNN、Yolov3等一系列结构也都在多目标检测的各种应用场景或者竞赛中取得了很不错的成绩。但是想象一下,假设我们需要通过图像检测某个产品上是否存在缺陷,或者通过卫星图判断某片海域是否有某公司的船只,再或者需要研发一套无人驾驶中基于图像的避障设备。这些问题的共同特点是,我们只需要检测出某种特定目标在图片中的位置,并不需要在同一幅图中识别...原创 2018-11-22 13:42:34 · 5132 阅读 · 6 评论 -
基于Keras的cifar10分类网络模型
就我个人看来,Keras应该是目前最方便的深度学习框架之一了。一般而言,Keras可以使用Tensorflow或者Theano作为后端引擎,但是我不会用Theano,所以自然用的是Tensorflow。由于Keras实现cifar10分类网络模型的难度过低,也没有什么特别值得注意的点……除了感叹下框架的强大之外好像也没啥可以说的了…… 不过,Keras虽然非常方便,但...原创 2018-11-20 22:22:34 · 1652 阅读 · 0 评论 -
基于Tensorflow的cifar10分类网络模型
Tensorflow算是老牌深度学习框架了,但是相比Pytorch来说,会稍微显得有些笨重,主要是计算必须在session中进行,在编写某些更为灵活的网络结构时,会比较麻烦。不过Tensorflow对分布式训练的支持较好,所以如果是需要使用分布式计算的情况下,使用Tensorflow会相对更加稳定一些。 这里主要是用Tensorflow复现之前用Pytorch实现的c...原创 2018-11-20 21:54:19 · 1109 阅读 · 0 评论 -
树莓派编译安装caffe2
平心而论,树莓派平台可以选择的深度学习框架还是相当多的,这里主要记录下caffe2平台的安装。首先按照官网教程,clone源码:git clone --recursive https://github.com/pytorch/pytorch.gitgit submodule update --init考虑到树莓派可能不是很稳定,用ubuntu系统clone下来打包丢到树莓派里边也许...原创 2019-04-18 16:54:52 · 605 阅读 · 0 评论