随笔分类 - tensorflow深度学习
tensorflow2.0+keras学习
    
摘要:空洞卷积(atrous convolution)又叫扩张卷积(dilated convolution),其实就是向卷积层引入了一个称为“扩张率(dilation rate)”的新参数,这个参数定义了卷积核处理数据时各值的间距。普通卷积和空洞卷积图示如下(以3*3卷积为例) (普通卷积) (空洞卷积)
        阅读全文
                
摘要:1*1shape的卷积在很多神经网络中都有应用(如Google InceptionNet,Resnet等),比起我们常见的2*2,3*3,5*5的卷积,这样的卷积核有什么作用呢? 首先,1*1的卷积可以增加网络层的非线性,它的卷积过程其实相当于全连接层的计算过程,并且还加入了非线性的激活函数(rel
        阅读全文
                
摘要:通过将单词转化到向量空间可以分析句子的语义,最常见的一个应用就是评价分析(如淘宝的商品评价,电影的评价等),那么如何将这些评价的句子进行分析呢?举个例子: 现在有一句评语“I hate this boring movie”,我们将其送入预先写好的某一系统最终得到一个评价的二分类(好评/差评),这个预
        阅读全文
                
摘要:自然界的数据类型(用于神经网络处理)大致可分为两种,一种是未知相关的数据(如卷积神经网络中处理的二维图片),另一种叫做序列信号(也可以理解为时间轴上的数据)。 比如一段语音,就是一个序列信号,因为它的数据之间有一个时间的先后顺序;再比如聊天记录,它可能并不是一个时间序列,但是我们阅读的时候会有一个先
        阅读全文
                
摘要:基于上一篇resnet网络结构进行实战。 再来贴一下resnet的基本结构方便与代码进行对比 resnet的自定义类如下: import tensorflow as tf from tensorflow import keras class BasicBlock(keras.layers.Layer
        阅读全文
                
摘要:我们都知道随着神经网络深度的加深,训练过程中会很容易产生误差的积累,从而出现梯度爆炸和梯度消散的问题,这是由于随着网络层数的增多,在网络中反向传播的梯度会随着连乘变得不稳定(特别大或特别小),出现最多的还是梯度消散问题。残差网络解决的就是随着深度增加网络性能越来越差的问题。 resnet中最典型的模
        阅读全文
                
摘要:VGG是2014年ILSVRC图像分类竞赛的第二名,相比当年的冠军GoogleNet在可扩展性方面更胜一筹,此外,它也是从图像中提取特征的CNN首选算法,VGG的各种网络模型结构如下: 今天代码的原型是基于VGG13,也就是上图的B类,可以看到它的参数量是很可观的。 因为设备和时间问题,网络并没有训
        阅读全文
                
摘要:1.无监督学习 无监督学习和监督学习是机器学习的两个方向,监督学习主要适用于已经标注好的数据集(如mnist分类问题),无监督学习则是希望计算机完成复杂的标注任务,简单的解释就是——教机器自己学习,它常见的应用场景有:从庞大的样本集合中选出一些具有代表性的加以标注用于分类器的训练、将所有样本自动分为
        阅读全文
                
摘要:当进行模型训练的时候,往往可能错过模型的最佳临界点,即当达到最大精度的时候再进行训练,测试集的精度会下降,这时候就会出现过拟合,如果能在其临界点处提前终止训练,就能得到表达力较强的模型,从而也避免了过拟合,这种方法就叫early stopping,但是这种方法多依靠人的经验和感觉去判断,因为无法准确
        阅读全文
                
摘要:在进行模型搭建时常用的解决过拟合的方法有以下几种: · 采用更多的数据 · 迫使模型的复杂度降低(减少层数、正则化) · dropout(提高鲁棒性) · 提早结束训练过程 · 数据增强 这里重点讲正则化(regularization) 假定对于一个二分类问题,它的交叉熵损失函数为 J(ω) = -
        阅读全文
                
摘要:在真实的应用中,我们往往想要的不仅仅是模型能够在训练集上表现良好,而是希望训练得到的模型也能在未知的新输入数据上(这些新输入数据就是测试集)表现良好。这种能在未知的新输入数据上表现良好的能力被称为泛化。模型在未知的新输入数据上得到的误差称为泛化误差,或测量误差,我们也希望泛化误差很低。在降低训练误差
        阅读全文
                
摘要:模型的保存与加载一般有三种模式:save/load weights(最干净、最轻量级的方式,只保存网络参数,不保存网络状态),save/load entire model(最简单粗暴的方式,把网络所有的状态都保存起来),saved_model(更通用的方式,以固定模型格式保存,该格式是各种语言通用的
        阅读全文
                
摘要:使用到的API有:keras.Sequential、Layers/Model 1.keras.Sequential 以前的代码已经很多次用到了这个接口,这里直接给出代码: model = Sequential([ layers.Dense(256,activation=tf.nn.relu), # 
        阅读全文
                
摘要:在tf.keras中,metrics其实就是起到了一个测量表的作用,即测量损失或者模型精度的变化。metrics的使用分为以下四步: step1:Build a meter acc_meter = metrics.Accuracy() loss_meter = metrics.Mean() step
        阅读全文
                
摘要:单层的感知机结构可写成以下公式: y=XW+b(y = Σxi*wi+b) 这里单层感知机的激活函数改成使用现代化的sigmoid激活函数 # 定义网络结构 x=tf.random.normal([1,3]) w=tf.ones([3,1]) b=tf.ones([1]) y = tf.consta
        阅读全文
                
摘要:1.MSE(均方误差) MSE是指真实值与预测值(估计值)差平方的期望,计算公式如下: MSE = 1/m (Σ(ym-y'm)2),所得结果越大,表明预测效果越差,即y和y'相差越大 y = tf.constant([1,2,3,0,2]) y = tf.one_hot(y,depth=4) y 
        阅读全文
                
摘要:对于神经网络的全连接层,前面已经使用矩阵的运算方式实现过,本篇将引入tensorflow中层的概念, 正式使用deep learning相关的API搭建一个全连接神经网络。下面是全连接神经网络的结构图 其中,x1,x2,x3为输入,a1,a2,a3为输出,运算关系如下: x1,x2,x3所在的层叫神
        阅读全文
                
摘要:本篇涉及的内容主要有小型常用的经典数据集的加载步骤,tensorflow提供了如下接口:keras.datasets、tf.data.Dataset.from_tensor_slices(shuffle、map、batch、repeat),涉及的数据集如下:boston housing、mnist/
        阅读全文
                
摘要:本篇内容有:如何根据坐标有目的的选择(where)、如何根据坐标有目的的更新(scatter_nd)、如何生成一个坐标系() 1.where where针对的tensor是一个bool类型的tensor,即元素都由True或False组成,where(tensor)返回元素为True的位置 # 随机
        阅读全文
                
摘要:本篇内容有clip_by_value、clip_by_norm、gradient clipping 1.tf.clip_by_value a = tf.range(10) print(a) # if x<a res=a,else x=x print(tf.maximum(a,2)) # if x>a
        阅读全文
                
                    
                
浙公网安备 33010602011771号