- 博客(10)
- 资源 (8)
- 收藏
- 关注
原创 基于C++的BNN推理
BNN的训练由pytorch完成,权重和激活均被量化为-1和1,padding时补-1,为了能在硬件上进行部署,推理时作了如下变换:-1由0代替,1由1代替,乘法由同或运算代替,为了使乘累加的和不变(之前-1x-1=1,1x1=1,1x-1=-1,但是现在1 xnor 1=1,0 xnor 0=1,1 xnor 0=0),需要对最后卷积的结果进行修改:conv_out=2∗xnor_conv(x,w)−ch_in∗k∗k+biasconv\_out=2*xnor\_conv(x,w)-ch\_in*k*
2021-02-22 15:34:21 771 1
原创 pytorch实现DenseNet
Dense详解链接代码:DenseNet.pyimport torchimport torch.nn as nnfrom collections import OrderedDictclass _DenseLayer(nn.Sequential): def __init__(self, in_channels, growth_rate, bn_size): super(_DenseLayer, self).__init__() self.add_mod
2021-02-21 17:42:13 400
原创 pytorch实现GoogleNet
GoogleNet的inception模块如图所示:代码:import torchimport torch.nn as nnfrom torch.nn import functional as Fdef conv_relu(in_channel, out_channel, kernel, stride=1, padding=0): layer = nn.Sequential( nn.Conv2d(in_channel, out_channel, kernel, str
2021-02-20 00:39:48 271
原创 pytorch实现ResNet50
ResNet50的结构如下:主干部分可分为4个stage,这4个stage主要由以下两个stem构成:如上图所示,这两个stem分别叫做残差块和下采样块。而Input stem的结构如下图所示:下面是具体的代码:import torchimport torch.nn as nnfrom torch.nn import functional as Fclass ResNet50BasicBlock(nn.Module): def __init__(self, in_channe
2021-02-19 19:01:02 3624 5
原创 基于c++的int8量化推理
训练代码:from __future__ import absolute_importfrom __future__ import divisionfrom __future__ import print_functionimport torchimport torch.nn as nnimport torch.nn.functional as Ffrom torch.nn import initfrom torch.nn.parameter import Parameterfrom t
2021-02-18 11:43:25 1116 3
原创 卷积运算的im2col实现
#include <stdio.h>#include <windows.h>#include<iostream>using namespace std;typedef double dtype;void kernel_reshape(dtype* weight_in,dtype* weight_out,int K,int C,int N) //N*K*K*C->(K*K*C)*N{ for(int i=0;i<N;i++)
2021-02-10 23:40:51 776
原创 基于FPGA的脉动阵列(Output Stationary)
单个PE的代码`timescale 1ns / 1ps//////////////////////////////////////////////////////////////////////////////////// Company: // Engineer: // // Create Date: 2021/02/10 19:09:28// Design Name: // Module Name: systolic_pe// Project Name: // Target Devi
2021-02-10 21:06:00 1151 2
原创 基于FPGA的TPU脉动阵列
模块代码:`timescale 1ns / 1ps//////////////////////////////////////////////////////////////////////////////////// Company: // Engineer: // // Create Date: 2021/02/05 19:33:34// Design Name: // Module Name: systolic// Project Name: // Target Devices:
2021-02-06 11:53:15 791
原创 基于FPGA的脉动阵列矩阵乘法
部分信号的时序图:模块代码:`timescale 1ns / 1ps//////////////////////////////////////////////////////////////////////////////////// Company: // Engineer: // // Create Date: 2021/02/04 10:29:57// Design Name: // Module Name: systolic// Project Name: // Targe
2021-02-05 00:49:59 2054 4
原创 笔记本核心数变少的解决方法
最近发现我的笔记本由双核四线程变成了单核双线程,查看任务管理器核心数为1,逻辑处理器为2,查看设备管理器,发现4个逻辑处理器均正常,查看BIOS,也发现核心数为2,也就是说,硬件上没有任何问题,最终通过如下方法解决:1.win+r,并输入msconfig2.取消"处理器个数(N):"的勾,确定并重启3.重启后打开任务管理器,发现电脑回复正常:双核四线程...
2021-02-01 13:17:12 5317
基于FPGA的HLS CNN加速器
2022-03-26
pingpang_block_mm.rar
2020-11-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人