自定义博客皮肤VIP专享

    *博客头图:

    格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

    请上传大于1920*100像素的图片!

    博客底图:

    图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

    栏目图:

    图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

    主标题颜色:

    RGB颜色,例如:#AFAFAF

    Hover:

    RGB颜色,例如:#AFAFAF

    副标题颜色:

    RGB颜色,例如:#AFAFAF

    自定义博客皮肤

    -+
    • 博客(16)
    • 问答 (1)
    • 收藏
    • 关注

    原创 如何复制conda的虚拟环境(实现环境迁移)

    在环境移植的过程中,如果想要在不联网的情况下直接复制别的机器或者自己的环境,可以将env下面对应的环境直接进行拷贝,(只适用于anacoda大版本相近anaconda2与3应该是不行的因为对应路径就已经有了变化),直接将整个环境复制然后全部拷贝到新环境的路径文件夹中。environment.yaml文件的样子长这样:(这里我是拿的一个别人的.yaml文件进行了简化和忽略,他的虚拟环境名字是NLU,存储位置在最后的prefix所指示的位置)最后的prefix改成这个新的虚拟环境想要存放的路径。

    2023-05-19 14:28:25 2504

    原创 RSA算法原理详解(简单易懂)

    本文主要是简单高效地讲解RSA算法的基本数学原理以及加解密的步骤,算法背景以及设计到的数学证明省略。本文主要参考wikipedia和博文《非对称加密算法–RSA加密原理》。非对称公钥加密算法可以由下列几步实现:信息接收方产生公钥pkpkpk与私钥sksksk,公钥可以给任何人,私钥自己保存;信息发送方将要发送的信息mmm与公钥pkpkpk一起用特定的加密算法加密,即密文ccc;信息接收方接收到密文ccc,与私钥sksksk一起用特定解密算法恢复明文。可见,以上加密算法的关键角色是公钥和私钥的生

    2022-02-28 16:56:04 23990 2

    原创 ModelSim仿真失败解决办法

    前段时间下了一个ModelSim 2019.2,一直没有用它跑过仿真。这几天突然想跑个仿真发现了一个问题。众所周知,用ModelSim仿真的时候要取消enable optimization选项(下图是没有取消的样子),然后再选择自己想仿真的work。这样在出来的仿真界面才能看到信号。可是当我取消了enable optimization选项之后仿真,却报下列错误。我把错误报告的文字贴出来:“Error (suppressible): (vsim-12110) All optimizations are

    2022-02-23 10:14:12 15788 4

    原创 信道编码基础(生成校验矩阵、码的个数、循环码)

    1. 有限域1.1 有限域的characteristic。对于一个有限域FFF,记它的单位元为eee,则存在一个最小整数ppp,使得e+e+⋯+e⏟p个=0,\underbrace{e+e+\cdots+e}_{p \text{个}}=0,p个e+e+⋯+e​​=0,则称ppp是FFF的characteristic。■\blacksquare■1.2 一个有限域的characteristic一定是质数(prime)。■\blacksquare■1.3 一个有限域的大小一定是characte

    2022-01-05 13:17:00 5973

    原创 PyTorch 量化 原理与复现

       神经网络的量化是指将浮点数的权重和(或)activation用定点数表示,此外,比较完全的量化还希望整个网络的数学运算全部是基于定点数的数学运算。对于定点数来讲,小数点的选取是人为的,(例如一个3比特的定点数的二进制形式为101,如果我们把小数点定在第一位之前,这个数就表示0.625;如果把小数点放在最后一位之后,就表示5)因此也往往称定点数量化为整数量化。   深度神经网络的量化方法有很多,但目前工业界的主流是INT8量化,即量化位宽为8比特 [1]。个人总结认为选用8比特位宽的主要原因有两个:

    2021-12-31 20:13:49 4278 3

    原创 典型集与Shannon信源编码理论

    1. 弱大数定律1.1 随机变量依概率收敛考虑一个与nnn有关的随机变量,通常是对nnn个随机变量求和得到的新随机变(见后面的弱大数定律)量,记这个随机变量为XXX。如果我们说这个随机变量“依概率收敛”于一个常量uuu,则我们记为∀ϵ>0, lim⁡n→∞p(∣X−u∣<ϵ)=1.{\forall}\epsilon>0, ~\lim\limits_{n\rightarrow \infty} p(|X-u|<\epsilon)=1.∀ϵ>0, n→∞

    2021-12-19 17:19:36 1037 2

    原创 信道编码的一些bound

    1. 码字距离公式:对于两个二元域上的码字x\bm{x}x和y\bm{y}y,他们的重量记为w(x)w(\bm{x})w(x)和w(y)w(\bm{y})w(y),内积记为<x,y><\bm{x},\bm{y}><x,y>,则他们之间的距离为d(x,y)=w(x)+w(y)−<x,y>.d(\bm{x},\bm{y})=w(\bm{x})+w(\bm{y})-<\bm{x},\bm{y}>.d(x,y)=w(x)+w(y)−<x,y&g

    2021-11-10 19:37:31 587

    原创 信源编码1:零误差数据压缩

    1. 考虑一个DDD-ary的信源编码,它是由一个随机变量XXX通过某种映射得到的集合D∗D^{*}D∗,集合D∗D^{*}D∗中包含的元素是码字,每个码字的符号是DDD进制的。例如,考虑一个222-ary的信源编码,其对应的随机变量XXX的字母表为χ={A,B,C,D}\chi=\{A,B,C,D\}χ={A,B,C,D}(先不关心每个字母对应的概率pi(x)p_i(x)pi​(x))。随机变量到码字的映射关系如下:A→0B→1C→01D→10.\begin{aligned}&A\righ

    2021-10-16 20:07:09 247

    原创 字符串匹配KMP算法及其时间复杂度分析

       字符串匹配算法是非常常见的算法。考虑长度为nnn的文本(text)字符串A[1,2,⋯ ,n]A[1,2,\cdots,n]A[1,2,⋯,n],长度为mmm的匹配(pattern)字符串B[1,2,⋯ ,m]B[1,2,\cdots,m]B[1,2,⋯,m],并且m≤nm\leq nm≤n。暴力求解(brute-force)的匹配算法十分直接。将BBB逐位与AAA进行对比,直到BBB完全匹配AAA的某个子串。例如,先拿BBB与A[1,2,⋯ ,m]A[1,2,\cdots,m]A[1,2,⋯,m]匹

    2021-10-09 20:13:24 4479

    原创 Optimal Caching: Farthest-in-Future算法

    1. 线下cache   在现代计算机系统中,大多拥有多级存储结构。这是因为不同的存储器拥有不同的读写速度和成本。在我们最常见的个人电脑中,从离CPU最近到最远的顺序一般是:CPU中的寄存器、cache、内存(RAM)、外存(硬盘)。显然,他们的容量也逐渐变大,内存往往是8G或者16G,外存往往是512G或者1T。容量的大小很大一部分决定因素是其成本,意味着上述存储器的单位成本也逐渐减小(很好理解,便宜的存储器给的容量才大)。而成本又和读写速度密不可分,读写速度快的存储器性能更好,而这样的性能往往是用其

    2021-10-05 20:46:59 1871

    原创 命令行传递参数 argparse.ArgumentParser解析

       当我们执行某个Python代码,例如文件mycode.py时,想要传递一些可以随时改变的自定义的参数。比如在训练神经网络的时候,我们为了方便修改训练的batch大小,epoch的大小等等,往往不想去动代码。此时最方便的方法就是在执行代码的时候从命令行传入参数。argparse.ArgumentParser()可以很好地满足这一需求。1.简单示例   先看一段简单的代码,在名为mycode.py的文件中import argparse parser = argparse.ArgumentPars

    2021-09-25 22:02:40 6917 3

    原创 screen:linux远程服务器防断网断电小妙招

       当我们在本地连接远程linux服务器的时候,常常会担心本地电脑断电或者断网的问题,因为本地电脑一旦出现问题,我们在远程服务器上跑得程序也会自动断开,这会让人十分苦恼,特别是在网络不稳定的环境下。   linux的screen命令很好地解决了这一问题,他类似于在服务器上开一个窗口(虚拟的),只是在我们本地电脑上显示,及时我们本地的电脑关机或者断网,回复之后仍可以连接上服务器的这个窗口,继续之间的结果(严格来说不是继续,因为在本地电脑断开的时候服务器仍然在运行,可以说是继续登录服务器观察运行结果)。首

    2021-09-20 15:04:57 1430

    原创 Pytorch forward方法调用原理

       在使用Pytorch自定义网络模型的时候,我们需要继承nn.Module这个类,然后定义forward方法来实现前向转播。如下图的一个自定义的网络模型首先该网络模型的初始化方法__init__需要继承父类nn.Module的初始化方法,用语句super().init()实现。并在初始化方法里面,定义了卷积、BN、激活函数等。接下来定义forward方法,将整个网络连接起来。   有了上面的定义,我们可以实例化一个对象,例如:fire2 = Fire(96, 128,16,64,64)实现前向

    2021-09-12 10:12:16 2437 1

    原创 ImageNet数据集简介与下载详细步骤

       ImageNet是一种数据集,而不是神经网络模型。斯坦福大学教授李飞飞为了解决机器学习中过拟合和泛化的问题而牵头构建的数据集。该数据集从2007年开始手机建立,直到2009年作为论文的形式在CVPR 2009上面发布。直到目前,该数据集仍然是深度学习领域中图像分类、检测、定位的最常用数据集之一。   基于ImageNet有一个比赛,从2010年开始举行,到2017年最后一届结束。该比赛称为ILSVRC,全称是ImageNet Large-Scale Visual Recognition Challe

    2021-08-27 10:55:48 168021 11

    原创 DNN和CNN的反向传播算法(全连接层、卷积层、池化层)

       反向传播算法是用来计算神经网络(NN)的可训练参数的偏导数的算法。在神经网络的训练中,对于一个参数(例如权重)的更新,往往采用下面的式子。wi,j=wi,j−α∑k∈B∂Jk∂wi,j.w_{i,j}=w_{i,j}-\alpha \sum_{k\in B}\frac{\partial J_k}{\partial w_{i,j}}.wi,j​=wi,j​−αk∈B∑​∂wi,j​∂Jk​​.其中wi,jw_{i,j}wi,j​是某个我们想要更新的权重,α\alphaα是学习率(一般比较小,例如

    2021-08-20 22:03:21 1247

    原创 基于Winograd算法的卷积基本原理

       Winograd算法是一种快速卷积算法,用于减少卷积运算中的乘法数量,代价是适当增加加法数量。首次将Winograd算法用于神经网络卷积运算的文章为参考文献[1]。   本文将基于该文章和几篇博文,介绍其基本原理。1.一维卷积F(2,3)F(2,3)F(2,3)   首先以卷积F(2,3)F(2,3)F(2,3)为例介绍Winograd算法如何实现一维卷积。F(2,3)F(2,3)F(2,3)表示卷积核大小为3×13\times13×1,被卷积的向量大小为2+3−1=42+3-1=42+3−1=

    2021-08-07 20:49:02 2062

    空空如也

    TA创建的收藏夹 TA关注的收藏夹

    TA关注的人

    提示
    确定要删除当前文章?
    取消 删除
    手机看
    程序员都在用的中文IT技术交流社区

    程序员都在用的中文IT技术交流社区

    专业的中文 IT 技术社区,与千万技术人共成长

    专业的中文 IT 技术社区,与千万技术人共成长

    关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

    关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

    客服 返回
    顶部