Python3
文章平均质量分 74
Python学习记录
xjcoolice
这个作者很懒,什么都没留下…
展开
-
神经网络模型量化
量化模型(Quantized Model)是一种模型加速(Model Acceleration)方法的总称,包括二值化网络(Binary Network)、三值化网络(Ternary Network),深度压缩(Deep Compression)等, 又可以细分为对称量化、非对称量化。1、量化的原因模型量化是由模型、量化两个词组成。我们要准确理解模型量化,要看这两个词分别是什么意思。在计算机视觉、深度学习的语境下,模型特指卷积神经网络,用于提取图像/视频视觉特征。量化是指将信号的连续取值近似为有.原创 2021-11-07 22:23:39 · 1887 阅读 · 1 评论 -
统计网络模型的参数量和计算量
在神经网络中,参数量和计算量是衡量神经网络模型的两个重要指标;参数量决定网络的大小,其主要影响的是模型的内存或显存大小;计算量则决定网络运行的快慢;一、计算说明:参数量(#paras)即为网络模型中含有多少个参数,与输入的数据无关,主要与模型的结构有关系;其主要影响模型运算是所需要的内存或显存计算量(#FLOPs)通常使用FLOPs(Floating point operations,浮点运算数量)来表示计算量,其主要来衡量算法/模型的复杂度。论文中一般用GFLOPs来表示,1GFLOPs=10^.原创 2021-11-07 21:49:38 · 8308 阅读 · 0 评论 -
tf量化踩坑记录
TF 踩坑记录在调试TF过程种遇到很多奇怪的bug,分别记录原因和解决方案。最重要的解决方案:1、冷静 2、debug 3、问题排除训练时is_training=True 验证时is_training=False ,不设置的话,验证过程种参数会发生变化,例如BN的mean和var是统计的均值。1) 训练过程不收敛或者收敛很慢a) 检查训练数据是否解析正常b) 检查网络结构是否正常,例如是否存在重复使用softmaxc) loss 设计是否正确d) BN层以及训练参数是否可训练,检查输入的参原创 2021-09-17 19:00:51 · 858 阅读 · 0 评论 -
RNN和LSTM的原理
1、RNN和传统全连接神经网络的区别RNN网络在传统全连接神经网络的基础上,新增上一个状态作为输入,展开结构如下:尤其需要注意的是RNN输入间共享了一套参数(U,W,b) ,这也导致了梯度爆炸和梯度消失的原因,其次缺乏重点,引入attention机制。2、LSTM的结构LSTM在RNN的基础上引入了,遗忘门f、输入门i和输出门o 内部记忆单元c, 单独具有单元的(W,U,b)遗忘门:控制上一状态的遗忘程度输入门:控制当前输入的更新程度内部记忆单元: 上一轮记忆和当前候选记忆 c_t原创 2021-10-13 16:50:04 · 481 阅读 · 0 评论 -
CV学习路线--个人阅读轨迹
学习AI过程的的阅读记录1、数据分析学习《利用Python进行数据分析·第2版》简书链接主要关注numpy和pandas的主要函数、方法,数据分析在AI中占重要位置原创 2021-07-06 17:43:57 · 483 阅读 · 0 评论 -
Tensorflow的矩阵和向量表示
tensorflow的表示类似于numpy,习惯python的表达,容易将向量和矩阵弄混,记录下两者区别case1: 对于numpy矩阵:numpy和tensor的表达如下:A = np.array([[1,-1,2], [3,2,0]])A_tf = tf.constan([[1,-1,2], [3,2,0]])注意是两对中括号,少了一对则是向量case2: 单列的数组,构建方法numpy和tensor的表达如下:A = np.array([[2], [1], [3]])A_t.原创 2020-10-26 21:23:13 · 553 阅读 · 0 评论 -
Python传入参数总结(*args和**kwargs的区别)
在python 传入函数的参数*args和**kwargs经常混用,所以记录下,用于区分总结来说*args和**kwargs的区别是:1、*args是可变无键参数,tuple类型; 2、**kwargs是可变有键参数,1、python中函数传递参数有四种形式:fun1(a,b,c)fun2(a=1,b=2,c=3)fun3(*args)fun4(**kargs)四种中最常见是前两种,基本上一般点的教程都会涉及,后两种一般很少单独出现,常用在混合模式中第一种 fun1(a,b,c)是.原创 2020-10-25 20:54:42 · 2590 阅读 · 1 评论 -
Python中切片方法的整理
Python中切片适用于字符串、列表、元组切片使用索引值来限定范围,从一个大的字符串中切出小的字符串。列表和元组都是有序的集合,都能够通过索引值获取到对应的数据字典是一个无序的集合,是使用键值对保存数据注意:指定的区间是左开右闭型从头开始,开始索引数字可以省略,冒号不能省略到末尾结束,结束索引数字可以省略,冒号不能省略。步长默认为1,如果连续切片,数字和冒号都可以省略。基本语法字符串[开始索引:结束索引:步长]# 当尾索引和头索引都没有给出的时候,默认返回整个字符串,不过这.原创 2020-08-31 00:24:23 · 741 阅读 · 0 评论 -
Linux Python代码运行工程环境设置
背景:在运行代码的过程中,经常出现找不到文件的问题。因此,在网上查询相关的文章,记录下处理。python 在导入库(模块)或者第三方库(模块),会按序检索当前目录(运行文件)、已安装的内置模块和第三方模块,搜索路径存放在sys模块的path。库、包、模块的区别:1、模块:自我包含并且有组织的代码片段为模块。一个文件就是一个模块。2、包:包是一个包含__init__.py 文件的目录,该目录下一定得有这个__init__.py文件和其它模块或子包。3、库:库是参考其它编程语言的说法,就是指py.原创 2020-08-24 16:35:06 · 834 阅读 · 0 评论 -
Python 赋值语句和迭代生成式
Python 中可以通过很多方法简化代码一、赋值语句,利用or实现if else效果The basic syntax:result = v1 or v2# equal the follow functionif v1: result = v1else: reult = v2通过这种方式,当v1为None,空值时,默认采用v2二、迭代生成式列表生成式顾名思义,列表生成式就是一个用来生成列表的特定语法形式的表达式。1). 语法格式:基础语法格式[exp for iter原创 2020-08-18 16:58:51 · 1196 阅读 · 0 评论 -
Python 3中的lambda函数使用
Define: 匿名函数lambda函数:指一类无需定义标识符(函数名)的函数或子程序。所谓匿名函数,通俗地说就是没有名字的函数,lambda函数没有名字,是一种简单的、在同一行中定义函数的方法。Feature:功能简单:lambda函数一般功能简单:单行expression决定了lambda函数不可能完成复杂的逻辑,只能完成非常简单的功能。由于其实现的功能一目了然,甚至不需要专门的名字来说明。参数不受限:lambda 函数可以接收任意多个参数 (包括可选参数) 并且返回单个表达式的值。.原创 2020-08-17 21:21:27 · 2626 阅读 · 0 评论 -
Python (类型提示)指定参数类型以及参数注解
众所周知,Python 是动态类型语言,运行时不需要指定变量类型。这一点是不会改变的,但是2015年9月创始人 Guido van Rossum 在 Python 3.5 引入了一个类型系统,允许开发者指定变量类型–类型提示(Type Hints)。它的主要作用是方便开发,供IDE 和各种开发工具使用,对代码运行不产生影响,运行时会过滤类型信息。主要优点如下:1、易于理解代码指定函数输入和输出,便于理解代码片段的过程。永远记住你阅读的代码,比你写的代码要多得多。有了类型提示(Type Hints.原创 2020-08-14 16:38:09 · 62847 阅读 · 3 评论 -
Python3 namedtuple的基本使用
namedtuple的基本使用在看流畅的python时看到这个包,所以记录下概述:Python的collections模块在基础数据类型的基础上,提供了几个额外的数据类型:namedtuple, defaultdict, deque, Counter, OrderedDict等,其中defaultdict和namedtuple是两个很实用的扩展类型。我一贯的风格就是学一个数据类型,就想去看看源码,虽然看不太懂,但是总比不看的强,之前java的集合源码阅读也是基于这样一个目的。今天就从使用和源码的角度来原创 2020-08-14 11:57:24 · 772 阅读 · 0 评论 -
Python 3 argparse 使用学习教程
argparse简介argparse 是 Python 内置的一个用于命令项选项与参数解析的模块,通过在程序中定义好我们需要的参数,argparse 将会从 sys.argv 中解析出这些参数,并自动生成帮助和使用信息。当然,Python 也有第三方的库可用于命令行解析,而且功能也更加强大,比如getopt、optparse, docopt,Click。argparse使用基本步骤1、 导入argparse 包2、创建add_argument() 方法添加参数3、 使用parse_args原创 2020-06-30 21:24:00 · 320 阅读 · 0 评论 -
python 3 __import__ 字符串动态加载模块
Python 动态加载本文介绍动态的Python配置加载,期望从配置文件根据字符串加载module或者方法 解决: 动态加载module问题(未加载),类似的函数还有eval(获取作用域内方法), getattr(获取对象的方法)等 例如配置文件:>>> import 'os' File "<ipython-input-1-69642997ed4d>...原创 2019-09-02 20:53:09 · 1660 阅读 · 0 评论 -
Python3 setattr vs __setattr__以及 getattr、__getattr__, hasattr, __hasattr__的用法和区别
Python3 hasattr vs __hasattr__以及 getattr、getattr, setattr vs __setattr__的用法和区别Python 中经常会需要判断、获取或者新建对象存在某个属性或者方法,这时就需要用到hasattr vs __hasattr__以及 getattr、getattr, setattr vs setattr。1、首先介绍hasattr、get...原创 2019-08-31 11:32:55 · 1301 阅读 · 0 评论