林鳞 编辑整理
量子位 出品 | 公众号 QbitAI
昨天,网友taki0112在Reddit论坛发布了一份简单易用Tensorflow代码集合,不到一天之内引发高赞。
作者在介绍中说,这份易用代码合集中都是已经整理好的小段代码,整理了层、块、标准化和激活、池化与调整大小、损失、图像预处理6大方向具体不同任务的简易代码。
作者介绍说,这份资料整体内容包含了GAN体系结构相关的基本内容,大家也不用客气,复制+粘贴使用即可。如此易获取,可让网友乐开了花。
在这份速查资料的6大发现中,共包含20个子知识点,量子位将这20个知识点整理介绍给大家,文章结尾附上了对应代码地址。
层
初始化和正则化:
初始化即为给神经网络设置最初的值。在这份资料中,总共包含了五种初始化方法,分别为:Xavier初始化法、He初始化法、高斯分布、截断正态分布、正交初始化。
正则化方法是指向原始模型引入额外信息,防止过拟合和提高模型泛化性能的方法,则包含L2正则化与正交正则化两种。
卷积:通过两个函数f 和g 生成第三个函数的一种数学算子,表征函数f与g经过翻转和平移的重叠部分的面积。设:f(x),g(x)是R1上的两个可积函数,作积分:
部分卷积:与上述卷积过程相似,只不过是对局部进行卷积。
空洞卷积:在论文Multi-scale context aggregation with dilated convolutions中由Fisher Yu等人首次提出, 不通过池化也能获得交大的感受野获取到更多信息。
逆卷积:是相对于卷积在神经网络结构的正向和反向传播中做相反的运算。
像素洗牌:一种学习单一图像超分辨模型的简单技术,模型可实现HD视频超分辨率的实时播放。
全卷积:因为模型网络中所有的层都是卷积层,故称为全卷积网络。
块
残差块:神经网络层次越深就容易出现梯度消息和梯度爆炸问题,论文Deep Residual Learning for Image Recognition中提出的残差网络就解决了这个问题。残差网络通过加入跳远连接变得易于优化,包含跳远连接的基层网络就是一个残差块。
注意块:一种用于前馈卷积神经网络的简单而有效的注意模块。
注意块中共分介绍了四种方法,包括自注意、池化后的自注意、squeeze_excitation和卷积注意模块(CBAM)。
标准化和激活
标准化:将数据按比例缩放,使之落入一个小的特定区间。标准化的方法分为很多种,在这份合集中也分类进行了整理。
有对一个batch进行规整防止同一个batch间的的梯度相互抵消的batch_norm:
有自一个样本内标准化的instance_norm:
此外,layer_norm、group_norm、adaptive_instance_norm、pixel_norm、spectral_norm等都包含在内。
激活函数:是指神经网络中一个节点在给定的输入或输入的集合下的输出。
激活函数也也分为多种,如ReLU函数、TanHyperbolic函数、sigmoid函数和swish激活函数等。
池化和调整大小
池化(Pooling)是卷积神经网络中的一个重要的概念,它实际上是一种形式的降采样,有多种不同形式的非线性池化函数,其中“最大池化(Max pooling)”是最为常见的。
速查中共包括上采样池化、全局平均池化、全局最大池化、最大池化、平均池化等常见的方法。
损失
损失:用来定义在单个训练样本上的,也就是就算一个样本的误差。
GAN损失:根据GAN的基本架构,也分为是生成损失和辨别损失。
KL散度:也成为相对熵,用来度量使用基于Q的编码来编码来自P的样本平均所需的额外的位元数。
图像预处理
在图像预处理部分中,作者根据几种常见的图像预处理操作,给出了速查代码。这些操作包括:图像加载、图像增强、图像存储和使用Tensorflow DatasetAPI将数据放入网络。
传送门
查看完整版代码,可移步这份代码集合的网站:
https://www.notion.so/Simple-Tensorflow-Cookbook-6f4563d0cd7343cb9d1e60cd1698b54d
GitHib地址:
https://github.com/taki0112/Tensorflow-Cookbook
— 完 —
诚挚招聘
量子位正在招募编辑/记者,工作地点在北京中关村。期待有才气、有热情的同学加入我们!相关细节,请在量子位公众号(QbitAI)对话界面,回复“招聘”两个字。
量子位 QbitAI · 头条号签约作者
?'?' ? 追踪AI技术和产品新动态
本文暂时没有评论,来添加一个吧(●'◡'●)