
深度学习&Tensorflow
文章平均质量分 84
深度学习与TensorFlow 2入门实战
https://study.163.com/course/introduction/1209092816.htm
小明2766
洄游的鱼终究会找到归途
展开
-
深度学习_11_1_深度学习暂停
很抱歉,这次的深度学习课程笔记在这里(循环神经网络RNN)先告一段落了。最近查询了许多数据相关的岗位,我打算先去学习有关机器学习的课程。关于深度学习,以后如果有空的话,我会继续学习滴!...原创 2021-06-05 11:47:47 · 547 阅读 · 0 评论 -
深度学习_10_5_ResNet,DenseNet&ResNet实战
10_5_ResNet,DenseNet&ResNet实战ResNet深度残差网络当堆叠更深的网络结构的时候,网络的性能并没有得到提升。每次计算梯度时δEδwij−>δk\frac{\delta E}{\delta w_{ij}}->\delta_kδwijδE−>δk,δk\delta_kδk算子是通过上一层算出来的,会渐渐产生误差的积累,也就会造成梯度离散(更多)和梯度爆炸的情况。也就是说前面的层数可以很好地更新,因为grad信息还算比较有效的;然后到最开始的几层后原创 2021-06-05 11:38:32 · 650 阅读 · 0 评论 -
深度学习_10_4_经典卷积网络VGG,GoogLeNet,Inception-1&BatchNorm
10_4_经典卷积网络VGG,GoogLeNet,Inception-1&BatchNormImageNetAlexNet错误率减了10个百分点VGG……LeNet-52卷积层+3AlexNet5卷积层+3准确率提升使用了pooling结构引进ReLU引入DropoutVGG6个版本,VGG-11 VGG-16 VGG-19……小窗口3*3、1*1,感受小视野。减少了计算量,并且不损害进度,而且计算很快。1*1 Convolution1*1卷积,输出图像大小是原创 2021-05-15 10:03:18 · 362 阅读 · 0 评论 -
深度学习_10_3_CIFAR100与VGG13实战
10_3_CIFAR100与VGG13实战CIFAR100与CIFAR10图片不变,但是分为10大类和每大类10小类。32*3260K:50K+10KPipline(流程)Load datasets加载数据集Build Network创建网络TrainTest13 Layersconv * 2+max pool = 一小块最后得到1*1*512,再送到一个全连接层(1层),再送到输出(1层)源代码import osos.environ['TF_CPP_MIN_LOG_原创 2021-05-13 23:14:52 · 313 阅读 · 0 评论 -
深度学习_10_2_卷积神经网络&池化与采样
10_2_卷积神经网络&池化与采样2D Convolution共享变量w、滑动窗口接下来将卷积网络计算的具体流程Kernel size1个通道多个通道:利用不同的w,3个w。输入的c要与核的c保持一致。【b,5,5,c】与【c,3,3】3个通道分别计算出结果后,再累加。得到【b,3,3,1】2D Convolution多个通道-》一个通道Padding & Stride需求:希望h’=h, w’=w。-》需要padding,上下左右都扩大一点。Stride原创 2021-05-11 14:54:43 · 511 阅读 · 0 评论 -
深度学习_10_1_什么是卷积
10_1_什么是卷积Feature maps(特征maps)彩色图片 [b,h,w,3]三个矩阵合在一起,这是最开始的feature map。feature map是通用的概念,代表数据的feature。x经过层,得到新的x,再经过某一层,再得到新的x。所有中间具体的数据与Tensor都可以理解为feature map。通用的格式:[b,h,w,c],b张照片,h、w和c维度。这里的c可以不是3,是中间的结果(未知信息的抽象化),转化到特征上面去。channel的信息量变强,位置的信息量变短。原创 2021-05-09 14:24:54 · 507 阅读 · 0 评论 -
深度学习_09_2_Regularization&动量与学习率&Early Stopping&Dropout
09_2_Regularization&动量与学习率&Early Stopping&DropoutRegularization如何防止或减轻OverfittingOccam’s Razor奥卡姆剃刀原理Reduce Overfitting提供更多数据模型复杂度降低浅的模型regularizationDropout数据增强提前终结Regularization(weigh decay-权值衰减)公式为 左边是二分类问题的cross entropy原创 2021-04-13 18:21:45 · 301 阅读 · 2 评论 -
深度学习_09_1_过拟合与欠拟合&交叉验证
09_1_过拟合与欠拟合&交叉验证过拟合与欠拟合数据真实模态(数据真实分布)Pr(θ)Pr(\theta)Pr(θ),r表示realScenario1: house price横坐标是面积,纵坐标是价格。根据数据图和人的经验来说,房价基本上是线性模型,因为房价=面积*倍数+偏置。Scenario2: GPA非线性模型,但是可以看出应该属于高斯分布(正态分布)The ground-truth distribution?(是事实的分布类型?)在我们知道分布的类型(风格),只需要预原创 2021-04-03 20:48:32 · 1197 阅读 · 3 评论 -
深度学习_08_2_模型加载与保存&CIFAR10自定义网络实战
08_2_模型加载与保存&CIFAR10自定义网络实战模型保存与加载Outlinesave/load weights最干净、最轻量级,只保存参数,适用于自己有源代码的情况save/load entire model把所有的状态都保存起来saved_model模型的保存格式,和pytorch的ONNX对应,适用于交给工厂的生产环境时,直接部署,格式通用,python写的模型可以应用C++工作1 save/load weights例子:对于三层网络,只需要掌握[原创 2021-04-03 20:39:33 · 558 阅读 · 0 评论 -
深度学习_08_1_Keras高层API&自定义层or网络
08_1_Keras高层API&自定义层or网络Keras.Metrics(Keras高层API)Keras != tf.keras主要使用以下功能:datasetslayerslossesmetricsoptimizersOutline在机器学习中,经常要记录loss、accuracy。它们至少是step或epoch平均的值,这样才能比较好反映training的状态。新建res = [],每一个batch加一次loss。[loss1,loss2,…],随后打印res.av原创 2021-04-03 20:36:33 · 295 阅读 · 0 评论 -
深度学习_07_5_随机梯度下降_手写数字问题实战(层)&TensorBoard可视化
07_5_随机梯度下降_手写数字问题实战(层)&TensorBoard可视化FashionMNIST实战(手写数字问题实战(层))FashionMNIST大小、类型和MNIST一样,只是图片内容是帽子、鞋子……10种。黑白,28*28代码实现import osos.environ['TF_CPP_MIN_LOG_LEVEL']='2'#可以和之前的41_前向传播_forward.py一一对应(使用手写和keras)import tensorflow as tf#keras新建原创 2021-04-03 08:49:12 · 218 阅读 · 0 评论 -
深度学习_07_4_随机梯度下降_反向传播算法&函数优化实战
07_4_随机梯度下降_反向传播算法&函数优化实战多层感知机梯度(反向传播算法)Chain rule通过链式法则,转换为对OK1O^1_KOK1和OK2O^2_KOK2的求导,一个一个求解。Multi-output Perception(多输出感知机)对wjk1w_{jk}^1wjk1的导数只和当前的相关联输出节点的值(OKO_KOK)(输出节点)输入节点xj0x^0_jxj0有关。Multi-Layer Perception利用多输出感知机扩展成多层的感知机。原创 2021-04-03 08:44:20 · 293 阅读 · 0 评论 -
深度学习_07_3_随机梯度下降_单输出&多输出感知机梯度&链式法则
07_3_随机梯度下降_单输出&多输出感知机梯度&链式法则单输出感知机及其梯度recap(回顾)单层的感知机模型:每个输入节点xix_ixi和它对应的wiw_iwi节点相乘,加上bias得到预测值。图是数学模型。Perception(感知)单层感知机前面激活函数是不积函数(阶梯),不可导。目前使用sigmoid函数,用σ\sigmaσ表示。规范化定义:输入层为第0层;x10x^0_{1}x10,上标0表示第0层;这个1表示0~n,表示第0层一共有N个元素节点的第1个元素原创 2021-03-31 23:02:11 · 515 阅读 · 0 评论 -
深度学习_07_2_随机梯度下降_激活函数及梯度&损失函数及梯度
07_2_随机梯度下降_激活函数及梯度&损失函数及梯度激活函数及其梯度Activation Functions(激活函数)研究青蛙的神经元有多个输入,比如x0,x1,x2x_0,x_1,x_2x0,x1,x2,它的中间结果是x0x_0x0到x2x_2x2的加权响应,而响应值并不是线性的输出,当响应值的和小于某个值,青蛙不会响应;当大于阈值,会输出固定的响应值。->由此推出阈值函数,它是阶梯函数,小于阈值不反应,大于阈值输出固定的响应。Derivative(导数)借用上面的原创 2021-03-31 22:56:32 · 904 阅读 · 0 评论 -
深度学习_07_1_随机梯度下降_梯度下降简介&常见函数梯度
07_1_随机梯度下降_梯度下降简介&常见函数梯度Gradient Descent 梯度下降-简介OutlineWhat’s Gradient 什么是gradientWhat does it mean gradient代表了什么意思How to Search 怎么搜索最小值AutoGrad 怎么用TensorFlow搜索What’s Gradient?导数,derivative高中学的导数一般来说是一维的,limx→valΔy\lim\limits_{x \rightar原创 2021-03-16 11:14:24 · 465 阅读 · 0 评论 -
深度学习_06_2_神经网络与全连接层_全连接层&输出方式&误差计算
06_2_神经网络与全连接层_全连接层&输出方式&误差计算全连接层deep learning最基本的层:全连接层,也就是线性层OutlineMatmul 矩阵形式->迭代到 Neural Network 神经网络结构->引入 Deep Learning 概念->最后实现一个 Multi-LayerRecapout = f(X@W+b)f为非线性因子,一般指relu函数或者SIGMOD函数X@W+bh00=x00∗W00+x10∗W01+x20∗W原创 2021-03-15 12:44:34 · 10198 阅读 · 0 评论 -
深度学习_06_1_神经网络与全连接层_数据加载&测试(张量)实战
06_1_神经网络与全连接层_数据加载&测试(张量)实战数据集加载Outline这次主要讲解一些小型常用的经典数据集的加载步骤keras.datasetstf.data.Dataset.from_tensor_slices 将数据加载进Tensor一些操作shufflemap 转换batch 多个样本组成一个batchrepeatwe will talk input pipeline later(大型的数据集,根据自己的需求,一项一项支持多线原创 2021-03-14 14:56:09 · 275 阅读 · 0 评论 -
深度学习_05_2_TensorFlow2高阶_填充与复制&张量限幅&高阶操作
05_2_TensorFlow2高阶_填充与复制&张量限幅&高阶操作填充与复制Outlinepad 数据的填充tile 数据的复制broadcast_toPad(填充)补充0,-1或者其他,默认填充0举例子:shape为[3]A表示左边填充1个单元,B表示右边填充2个单元。=> [6]例子:[2,2][ [0,1], [1,1] ] 上面补充0行,下面补充1行;左边补充1列,右边补充1列具体的实例:tf.pad(a,[[1,0],[0,0]])I原创 2021-03-13 10:00:28 · 392 阅读 · 0 评论 -
深度学习_05_1_TensorFlow2高阶_合并与分割&数据统计&张量排序
05_1_TensorFlow2高阶_合并与分割&数据统计&张量排序合并与分割Merge and splittf.concat 拼接tf.split 分割tf.stack 堆叠tf.unstack split的一种concat[4,35,80] [2,35,8] -> [6,35,8]合并后并不会增加维度。拼接的维度可以不相等,但是其他维度一定要相等。tf.concat([a,b],axis=0)例子:stack: create new dim[4,原创 2021-03-13 09:51:17 · 334 阅读 · 0 评论 -
深度学习_04_3_TensorFlow2基础_Broadcasting&数学运算&前向传播
04_3_TensorFlow2基础_Broadcasting&数学运算&前向传播Broadcasting本质上是一个张量维度扩张的手段对某个维度上面重复n多次,但是没有真正的复制数据,和tf.tile不同。tile会重复n多次并且会真实的在数据上体现出来(复制数据)。是一种优化的手段,呈现出数据已经被扩张了。在X @ W+b上,[10]变成[b,10]的步骤就是broadingcast的步骤Key idea小维度先对齐,没有的插入维度扩张成为相同的大小例子:[1原创 2021-03-12 09:12:25 · 432 阅读 · 2 评论 -
深度学习_04_2_TensorFlow2基础_索引与切片&维度变换
04_2_TensorFlow2基础_索引与切片&维度变换索引与切片Indexing最基本的索引方式是给出每一个维度的index。还有Numpy的索引风格是,[idx,idx, …],后面还有: 或 :: 或 …的方式Basic indexing最简单的索引方式,给定每一个维度的索引。取[0] [0],那么它的shape是[5,3],每个元素的数值是1要取更深层次的维度,[0] [0] [0],取上面的第0行,那么返回1维的向量。如果再深入,返回的是标准的scalar(标量)N原创 2021-03-11 13:20:47 · 304 阅读 · 0 评论 -
深度学习_04_1_TensorFlow2基础_Tensor数据类型&创建Tensor
04_1_TensorFlow2基础_Tensor数据类型&创建TensorTensor数据类型一些概念Data Container(数据载体)list优点:可以添加任何类型的数据np.arraytf.Tensor和numpy类似,这是更适合GPU运算。What’s Tensor?scalar(标量):1.1dimension = 0vector(向量):[1.1], [1.1,2.2, …]dimension = 1matrix(矩阵):[原创 2021-02-26 22:51:15 · 603 阅读 · 0 评论 -
深度学习_03_分类问题_手写数字问题&体验
分类问题Discrete Prediction(离散值的预测)[up,left,down,right]、[dog,cat,whale,…]ImageNet:包含1000种常见生活物体Hand-written Digits Recignition(手写数字体识别)MNIST数据集Image[28,28,1] 28行28列 -> [784]每个像素点为0~255(灰度值)彩色图片的话可能为[ 28 , 28 , 3(RGB)]为了获得打平后的向量的值,变成一维的数值。后一行的数值原创 2021-02-24 23:21:47 · 885 阅读 · 0 评论 -
深度学习_02_回归问题_线性回归&回归实战
回归问题Machine Learning目标:通过对数据的学习,对于新来的x给出符合实际情况的y自然界的y有两种类型:discrete(离散的)continuous(连续的)Continuous Prediction(连续值预测)fθ(x)→yf_\theta(x) \rightarrow yfθ(x)→y给定x(输入的数据),在经过模型的结构f,以及模型的参数θ\thetaθ以后,能给出一个响应,这个响应就标记为fθ(x)f_\theta(x)fθ(x)。我们希望它能逼近真实的原创 2021-02-23 22:02:20 · 586 阅读 · 0 评论 -
深度学习_01_简介&安装配置
简介框架介绍TensorFlow优势GPU加成自动求导神经网络API全连接层、卷积层、LSTM……开发环境安装windows 10 and Ubuntu 16.04/18.04Anaconda, Python 3.7CUDA 10.0TensorFlow 2.0PyCharm注意:CUDA安装时:取消安装Visual Studio IntegratiorDisplay Driver安装的版本号高于当前版本号,否则取消勾选...原创 2021-02-23 21:57:50 · 90 阅读 · 0 评论