
深度学习
文章平均质量分 90
EnjoyCodingAndGame
Nothing raplaces hard work.
纸上得来终觉浅,绝知此事要躬行。
展开
-
PyG(torch_geometric)的MessagePassing详解
MessagePassing是图神经网络(Graph Neural Networks,GNNs)的一个基础组件,它被设计用来处理图形数据的问题。在图形数据中,数据点(节点)之间的关系(边)是非常重要的信息。MessagePassing通过在节点之间传递和聚合信息,使得每个节点都能获取其邻居节点的信息,从而更好地理解图形的结构和特性。具体来说,MessagePassing的工作方式是这样的:对于每个节点,它会收集其所有邻居节点的信息(这个过程称为消息传递),然后将这些信息聚合起来(这个过程称为消息聚合)。原创 2023-11-15 11:31:49 · 1840 阅读 · 0 评论 -
PyTorch QAT(量化感知训练)实践——基础篇
本文介绍了int8量化和QAT的原理,并基于PyTorch介绍了提供的PTQ和QAT的方法。原创 2022-07-25 17:41:49 · 6946 阅读 · 1 评论 -
InplaceABN Backward Error
近日在对一个包含InplaceABN模块的网络进行魔改的时候,遇到了如下报错:RuntimeError: one of the variables needed for gradient computation has been modified by an inplace operation: [torch.cuda.FloatTensor [64, 256, 7, 7]], which is output 0 of InPlaceABNBackward, is at version 3; expec原创 2021-12-09 10:55:18 · 680 阅读 · 0 评论 -
PyTorch Code Snippets
1. 卷积计算import torchfilter = torch.nn.Conv2d(2, 1, 2, 1, 1, 3, bias=False)filter.weight[0][0][0][0]=2filter.weight[0][0][0][1]=1filter.weight[0][0][1][0]=1filter.weight[0][0][1][1]=-1filter.weight[0][1][0][0]=-3filter.weight[0][1][0][1]=2fi..原创 2020-12-02 15:11:49 · 643 阅读 · 0 评论 -
Kaggle比赛Mechanisms of Action (MoA) Prediction数据预处理处理
1. 数据预处理1.1QuantileTransformerclasssklearn.preprocessing.QuantileTransformer(*,n_quantiles=1000,output_distribution='uniform',ignore_implicit_zeros=False,subsample=100000,random_state=None,copy=True)Transform features using quantiles informa...原创 2020-11-21 14:47:38 · 920 阅读 · 0 评论 -
GloVe与word2vec的区别,及GloVe的缺陷
GloVe与word2vec,两个模型都可以根据词汇的“共现co-occurrence”信息,将词汇编码成一个向量(所谓共现,即语料中词汇一块出现的频率)。两者最直观的区别在于,word2vec是“predictive”的模型,而GloVe是“count-based”的模型。具体是什么意思呢1,Count-based VS PredictivePredictive的模型,如Word2vec,要么根据context预测中间的词汇,要么根据中间的词汇预测context,分别对应了word2vec的两种.原创 2020-09-15 16:35:49 · 4536 阅读 · 0 评论 -
Keras使用多GPU训练模型、保存、加载
多GPU训练可以在一定程度上提高训练的效率,Keras在以TensorFlow为底层的时候,可以方便的调用多GPU进行训练。其训练的原理是将一个神经网络在多块GPU中进行初始化,并且将一个batch的数据分配到不同的GPU中,反向传播结束后,再使用CPU进行合并更新参数。举个例子,同时使用两块GPU,batchsize是16的话,Keras会将8个给1号GPU,另外8个给2号GPU,训练结束后将二...原创 2020-04-21 16:00:04 · 2412 阅读 · 0 评论 -
YOLO源码(Darknet源码)解读(convolutional_layer.c)
#include "convolutional_layer.h"#include "utils.h"#include "batchnorm_layer.h"#include "im2col.h"#include "col2im.h"#include "blas.h"#include "gemm.h"#include <stdio.h&原创 2018-04-24 15:07:40 · 3411 阅读 · 1 评论 -
YOLO源码(Darknet源码)解读(im2col.c)
#include "im2col.h"#include <stdio.h>// 获取图像像素值float im2col_get_pixel(float *im, int height, int width, int channels, int row, int col, int channel, int pad){ r...原创 2018-04-27 15:11:45 · 1159 阅读 · 0 评论 -
TensorFlow 模型固化及生成TF Lite模型
convert_variables_to_constantssaver = tf.train.import_meta_graph(checkpoint + '.meta', clear_devices=True) #得到图、clear_devices :Whether or not to clear the device field for an `Operation` or `Tensor` d...原创 2018-05-25 20:05:16 · 2485 阅读 · 0 评论 -
海思Hi3519A SVP从入门到精通(一 概述)
1. SVP简介SVP(Smart Vision Platform)是海思媒体处理芯片智能视觉异构加速平台。该平台包含了 CPU、DSP、NNIE(Neural Network Inference Engine)等多个硬件处理单元和运行在这些 硬件上 SDK 开发环境,以及配套的工具链开发环境。2. 开发框架SVP 开发框架如图所示。目前 SVP 中包含的硬件处理单元有 CPU、vis...原创 2018-12-26 13:39:45 · 12385 阅读 · 1 评论 -
《Bag of Tricks for Image Classification with Convolutional Neural Networks》论文笔记
1. Training procedure refinements:1. data augmentations2. optimization methods.3. loss functions 2. Baseline Training Procedure: Randomly sample an image and decode it into 32-bit floatin...原创 2019-01-07 20:09:29 · 472 阅读 · 0 评论 -
《Focal Loss for Dense Object Detection》论文笔记
1. 需要解决的问题原创 2019-01-08 13:38:39 · 381 阅读 · 5 评论 -
Andrej Karpathy的炼丹技巧
1、先别着急写代码训练神经网络前,别管代码,先从预处理数据集开始。我们先花几个小时的时间,了解数据的分布并找出其中的规律。Andrej有一次在整理数据时发现了重复的样本,还有一次发现了图像和标签中的错误。所以先看一眼数据能避免我们走很多弯路。由于神经网络实际上是数据集的压缩版本,因此您将能够查看网络(错误)预测并了解它们的来源。如果你的网络给你的预测看起来与你在数据中看到的内容不一致,...原创 2019-04-28 14:36:25 · 1158 阅读 · 0 评论 -
YOLO源码(Darknet源码)解读(layer.c)
#include "layer.h"#include "cuda.h"#include <stdlib.h>void free_layer(layer l){ if(l.type == DROPOUT){ if(l.rand) free(l.rand);#ifdef GPU if(l.rand_gpu) ...原创 2018-04-24 11:27:10 · 828 阅读 · 0 评论 -
卷积神经网络时间和空间复杂度分析
在深度学习的发展过程中,有意无意中,很多创新点都与改善模型计算复杂度密切相关。因而,本文对CNN的时间和空间复杂度做以分析。首先,明确下FLOPS和FLOPs的区别:FLOPS:注意全大写,是floating point operations per second的缩写,意指每秒浮点运算次数,理解为计算速度。是一个衡量硬件性能的指标。 FLOPs:注意s小写,是floating po...转载 2018-04-19 16:32:32 · 6321 阅读 · 0 评论 -
激活函数(ReLu LReLU PReLU CReLU ELU SELU)
ReLU tensorflow中:tf.nn.relu(features, name=None)LReLU(Leaky-ReLU) 其中aiai是固定的。ii表示不同的通道对应不同的aiai. tensorflow中:tf.nn.leaky_relu(features, alpha=0.2, name=None)PReLU 其中aiai是可以学习的的。如果ai=0ai=0,那么 PReLU 退化...转载 2018-04-19 11:35:58 · 8072 阅读 · 0 评论 -
Google Inception v1 - v4 papers & 发展历程
Papers:[v1] Going Deeper with Convolutions, 6.67% test error, http://arxiv.org/abs/1409.4842[v2] Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift, 4.8%转载 2016-11-29 20:14:33 · 551 阅读 · 0 评论 -
深度学习公开课、框架、博客链接
公开课台大李宏毅:Machine Learninghttp://speech.ee.ntu.edu.tw/~tlkagk/courses_ML17.html斯坦福李飞飞-CS231n: Convolutional Neural Networks for Visual Recognitionhttp://cs231n.stanford.edu/http://cs231n.gith原创 2017-07-30 22:40:02 · 1847 阅读 · 0 评论 -
机器学习与Deep Learning算法问题汇总(Part-2)
7. 什么是梯度弥散?要怎么去解决这个问题?答: 随着网络层数变深, activations倾向于越大和越小的方向前进, 往大走梯度爆炸(回想一下你在求梯度时, 每反向传播一层, 都要乘以这一层的activations), 往小走进入死区, 梯度消失。 这两个问题最大的影响是, 深层网络难于converge。sigmoid不存在梯度爆炸, 在activations往越大越小的方向上前进时, 梯度都...原创 2018-04-09 11:46:28 · 497 阅读 · 0 评论 -
机器学习与Deep Learning算法问题汇总(Part-3)
11. 怎么解决过拟合和欠拟合?答:(1)过拟合:1)增加训练数据,数据增广。一般有如下方法:从数据源头采集更多数据;复制原有数据并加上随机噪声;重采样;根据当前数据集估计数据分布参数,使用该分布产生更多数据等。2)正则化:L1正则和L2正则;增大正则项参数。3)dropout。4)batch normalizatin。5)交叉验证,通过交叉检验得到较优的模型参数。6)特征选择,减少特征数或使用较...原创 2018-04-09 15:56:01 · 333 阅读 · 0 评论 -
机器学习与Deep Learning算法问题汇总(Part-1)
1. 卷积神经网络(CNN)中卷积层与池化层如何进行BP残差传递与参数更新?答:(1) Average Pooling的BP好算,直接求导可得,就是1/n.(2) Max Pooling比较有意思,forward的时候需要记录每个窗口内部最大元素的位置,然后BP的时候,对于窗口内最大元素的gradient是1,否则是0。原理和ReLu是一样的。2. SVM为什么要用核函数?答:(1)kernel ...原创 2018-04-02 17:06:20 · 466 阅读 · 0 评论 -
Atrous Convolution详解
Atrous 卷积,就是带洞的卷积,卷积核是稀疏的。上图(b)是带洞卷积,可以跳着选,隔一个加一个。下图中第三个示例(c),就是带洞卷积。带洞卷积减少了核的大小,可以达到节省内存的作用。而且带洞卷积的有效性基于一个假设:紧密相邻的像素几乎相同,全部纳入属于冗余,不如跳H(hole size)个取一个。...原创 2018-04-02 17:35:13 · 12286 阅读 · 5 评论 -
深度学习物体检测详解:YOLO V3
YOLO V3: An Incremental ImprovementImprovements:1. Objectness score:YOLO V3用logistic regression为每一个bbox预测一个objectness score。假如一个bbox与ground truth的IOU比其他bboxes的都要大,则它的objectness score为1,即为best box。假如一个...原创 2018-04-12 11:50:51 · 5202 阅读 · 0 评论 -
YOLO源码(Darknet源码)解读(utils.c)
utils.c#include <stdio.h>#include <stdlib.h>#include <string.h>#include <math.h>#include <assert.h>#include <unistd.h>#include <float.h>#include &l原创 2018-04-18 10:42:57 · 1132 阅读 · 0 评论 -
深度学习物体检测详解:YOLO V2
YOLO V2 —— YOLO9000:Better, Faster, StrongerImprovements:1. Batch Normalization:显著提高模型收敛速度, 不需要其他正则手段(比如Dropout)。给每个卷基层都增加BN后,mAP提高了2个点。2. High Resolution Classifier:将图像分辨率从224 x 224扩大为448 x 448,finetu...原创 2018-04-05 21:47:47 · 2034 阅读 · 1 评论 -
深度学习物体检测详解:YOLO vs SSD
《You Only Look Once: Unified, Real-Time Object Detection》Key idea:1. 将物体检测这个问题定义为bounding box和分类置信度的回归问题。2. 将整张图像作为输入,划分成SxS grid,每个cell预测B个bounding box(x, y, w, h)及对应的分类置信度(class-specific confidence s...原创 2018-03-30 15:43:27 · 20778 阅读 · 2 评论 -
YOLO源码(Darknet源码)解读(network.c)
network.c#include <stdio.h>#include <time.h>#include <assert.h>#include "network.h"#include "image.h"#include "data.h"#include "utils.h"#include "blas.h"#i原创 2018-04-18 10:44:37 · 4931 阅读 · 2 评论 -
YOLO源码(Darknet源码)解读(darknet.c)
main函数int main(int argc, char **argv){ //test_resize("data/bad.jpg"); //test_box(); //test_convolutional_layer(); if(argc < 2){ fprintf(stderr, "usage: %s <function>\...原创 2018-04-12 20:36:14 · 2022 阅读 · 1 评论 -
YOLO源码(Darknet源码)解读(yolo.c)
yolo.c#include "darknet.h"// 20个类别定义char *voc_names[] = {"aeroplane", "bicycle", "bird", "boat", "bottle", "bus", "car", "cat", "chair", "cow",原创 2018-04-13 11:17:57 · 3541 阅读 · 2 评论 -
为什么深度学习目前这么火爆?
神经网络早在上个世纪就已经出现,但是为什么如今改称“深度学习”后大红大紫呢?大抵有如下几个原因:1 计算能力提高(GPU、分布式)2 新的相对更加优化的算法(dropout、ReLU、max-pooling)3 更大的数据量(包括data augmentation),以前数据量小,很容易overfitting4 不需要hand-craft feature,在很多任务上都取得了sta原创 2016-10-04 11:18:30 · 6660 阅读 · 0 评论