epoch

【DL&ML】深度学习调参有哪些技巧?

人走茶凉 提交于 2020-11-17 22:41:11
深度学习调参有哪些技巧? 编辑:Amusi | 来源:知乎 https://www.zhihu.com/question/25097993 目录 一、为什么要学习调参? 二、调参技巧 1. 评价指标: 2. 损失函数: 3. 激活函数选择: 4. 学习率设定: 5. 优化器选择: 6. batch_size 7. 防止过拟合: 8. 残差块与BN层: 9. 数据预处理【对输入】 10.参数随机初始化【对参数】 11.自动调参方法: 12. 过程、结果可视化 13. 关于卷积神经网络的技巧 三、心态类: 深度学习的效果很大程度上取决于参数调节的好坏,那么怎么才能最快最好的调到合适的参数呢?求解 一、为什么要学习调参? 相信很多刚开始接触深度学习朋友,会感觉深度学习调参就像玄学一般,有时候参数调的好,模型会快速收敛,参数没调好,可能迭代几次loss值就直接变成Nan了。 记得刚开始研究深度学习时,做过两个小例子。 一个是用tensorflow构建了一个十分简单的只有一个输入层和一个softmax输出层的Mnist手写识别网络,第一次我对权重矩阵W和偏置b采用的是正态分布初始化,一共迭代了20个epoch,当迭代完第一个epoch时,预测的准确度只有10%左右(和随机猜一样,Mnist是一个十分类问题),当迭代完二十个epoch,精度也仅仅达到了60%的样子

震惊了,原来这才是Kafka的“真面目”!

为君一笑 提交于 2020-11-17 22:22:24
Kafka 是一个分布式消息队列,具有高性能、持久化、多副本备份、横向扩展能力。生产者往队列里写消息,消费者从队列里取消息进行业务逻辑。一般在架构设计中起到解耦、削峰、异步处理的作用。 image.png Kafka 对外使用 Topic 的概念,生产者往 Topic 里写消息,消费者从中读消息。 为了做到水平扩展,一个 Topic 实际是由多个 Partition 组成的,遇到瓶颈时,可以通过增加 Partition 的数量来进行横向扩容。单个 Parition 内是保证消息有序。 每新写一条消息,Kafka 就是在对应的文件 append 写,所以性能非常高。 Kafka 的总体数据流是这样的: image.png 大概用法就是,Producers 往 Brokers 里面的指定 Topic 中写消息,Consumers 从 Brokers 里面拉取指定 Topic 的消息,然后进行业务处理。 图中有两个 Topic,Topic0 有两个 Partition,Topic1 有一个 Partition,三副本备份。 可以看到 Consumer Gourp1 中的 Consumer2 没有分到 Partition 处理,这是有可能出现的,下面会讲到。 关于 Broker、Topics、Partitions 的一些元信息用 ZK 来存,监控和路由啥的也都会用到 ZK。 生产

运维必备:Zookeeper集群“脑裂”问题处理大全

ぐ巨炮叔叔 提交于 2020-11-14 10:15:38
​本文重点分享Zookeeper脑裂问题的处理办法。ZooKeeper是用来协调(同步)分布式进程的服务,提供了一个简单高性能的协调内核,用户可以在此之上构建更多复杂的分布式协调功能。 脑裂通常会出现在集群环境中,比如ElasticSearch、Zookeeper集群。而这些集群环境有一个统一的特点,就是它们有一个大脑,比如ElasticSearch集群中有Master节点,Zookeeper集群中有Leader节点。 一、 Zookeeper集群节点为什么要部署成奇数 Zookeeper容错 指的是当宕掉几个Zookeeper节点服务器之后,剩下的个数必须大于宕掉的个数,也就是剩下的节点服务数必须大于n/2,这样Zookeeper集群才可以继续使用,无论奇偶数都可以选举Leader。 例如5台Zookeeper节点机器最多宕掉2台,还可以继续使用,因为剩下3台大于5/2。 至于为什么最好为奇数个节点? 这样是为了以最大容错服务器个数的条件下,能节省资源。 比如,最大容错为2的情况下,对应的Zookeeper服务数,奇数为5,而偶数为6,也就是6个Zookeeper服务的情况下最多能宕掉2个服务。 所以从节约资源的角度看,没必要部署6(偶数)个Zookeeper服务节点。 Zookeeper集群有这样一个特性: 集群中只要有过半的机器是正常工作的,那么整个集群对外就是可用的。

Hadoop namenode高可用性分析:QJM核心源代码解读

|▌冷眼眸甩不掉的悲伤 提交于 2020-11-13 03:01:28
Hadoop namenode高可用性分析:QJM核心源代码解读 背景介绍 HDFS namenode 在接受写操作时会记录日志,最早 HDFS 日志写本地,每次重启或出现故障后重启,通过本地镜像文件+操作日志,就能还原到宕机之前的状态,不会出现数据不一致。如果要做高可用 (HA),日志写在单个机器上,这个机器磁盘出现问题,重启就恢复不了,导致数据不一致,出现的现象就是新建的文件不存在,删除成功的还在等诡异现象。这是分布式存储系统不能容忍的。 在单机系统上是通过 WAL(write ahead log)日志来保证出问题后可恢复,在 HDFS 上对应的就是操作日志(EditLog),用于记录每次操作的行为描述。这里我们简单介绍下 editlog 的格式。 文件格式 编辑中的日志 edits_inprogress_txid,也就是后文提到的 segment,txid 代表该日志文件的第一个事务 ID Finalized 日志即一致不再更改的日志文件 edits_fristTxit_endTxid 内容格式 文件头:有版本号 + 一个事务头标识 文件内容 1 操作类型 - 占1个字节 2 日志长度 - 占4个字节 3 事务txid - 占8个字节 4 具体内容 5 checksum - 4个字节 文件结尾:一位事务标识 注意之前没有 journal 分布式日志时,每次 flush

pytorch数据读取

邮差的信 提交于 2020-11-13 02:26:24
pytorch数据读取机制: sampler生成索引index,根据索引从DataSet中获取图片和标签 1.torch.utils.data.DataLoader 功能:构建可迭代的数据装在器 dataset:Dataset类,决定数据从哪读取及如何读取 batchsize:批大小 num_works:是否多进程读取数据,当条件允许时,多进程读取数据会加快数据读取速度。 shuffle:每个epoch是否乱序 drop_last:当样本数不能被batchsize整除时,是否舍弃最后一批数据 DataLoader(dataset, batchsize=1, shuffle=False, batch_sampler=None, num_workers=0, collate_fn=None, pin_memeory=False, drop_last=False, timeout=0, worker_init_fn=None, multiprocessing_context=None) epoch:所有训练样本都已输入到模型中,称为一个epoch iteration:一批样本输入到模型中,称为一个iteration batchsize:批大小,决定一个epoch有多少个iteration 例如: 样本总数:80, batchsize:8 1epoch = 10 iteraion 样本总数

ES[7.6.x]学习笔记(五)动态映射

好久不见. 提交于 2020-11-11 09:41:11
通常情况下,我们使用ES建立索引的步骤是,先创建索引,然后定义索引中的字段以及映射的类型,然后再向索引中导入数据。而动态映射是ES中一个非常重要的概念,你可以直接向文档中导入一条数据,与此同时,索引、字段、字段类型都会自动创建,无需你做其他的操作。这就是动态映射的神奇之处。 动态字段映射 ES的动态映射默认是开启的,动态映射的默认规则如下: JSON的数据类型 ES中的数据类型 null 不会映射字段 true 或 false boolean类型 浮点型数字 float 整型数字 long JSON对象 Object 数组 第一个非空值的类型 String 1、如果满足日期类型的格式,映射为日期类型 2、如果满足数字型的格式,映射为long或者float 3、如果就是字符串,会映射为一个text类型和一个keyword类型 接下来我们看看动态映射的一个例子,我们直接向 dynamic-index 索引中存放一条数据,注意, dynamic-index 这个索引我们没有创建过,直接存放数据,索引会自动创建。接下来,我们看一下具体的请求: PUT /dynamic-index/_doc/1 { "my_null" : null, "my_boolean" : false , "my_float" : 1 .56, "my_long" : 3 , "my_object" : { "my

pytorch搭建PyQt5界面实战:ResNet-18实现CLFAR-10图像分类,并利用PyQt5进行人机界面显示

被刻印的时光 ゝ 提交于 2020-11-07 12:36:43
pytorch实战:ResNet-18实现CLFAR-10图像分类,并利用PyQt5进行人机界面显示 实验环境: 1.pytorch-1.6.0 2.python-3.7.9 3.window-10 4.pycharm 5.pyqt5(相应的QT Designer及工具包) CLFAR-10的数据集 作为一个初学者,在官网下载CLFAR-10的数据集下载速度不仅慢,而且不是常用的图片格式,这里是转换后的数据集,有需要的可以直接百度云盘提取。 链接:https://pan.baidu.com/s/1l7wvWLCscPcGoKzRjggjRA 提取码:ht88 ResNet-18网络: ResNet全名Residual Network残差网络。残差网络是由何凯明所提出的,他的《Deep Residual Learning for Image Recognition》获得了当年CVPR最佳论文。他提出的深度残差网络在2015年可以说是洗刷了图像方面的各大比赛,以绝对优势取得了多个比赛的冠军。而且它在保证网络精度的前提下,将网络的深度达到了152层,后来又进一步加到1000的深度。我们这里用到的是一个18 层的残差网络。 网络结构如下: 残差学习:一个构建单元 在pytorch上搭建ResNet-18模型 一、新建resnet.py文件 代码如下: import torch . nn

Nginx

拈花ヽ惹草 提交于 2020-11-05 14:38:18
1. 前言 通过 HttpHeadersModule 模块可以设置HTTP头,但是不能重写已经存在的头,比如可能相对server头进行重写,可以添加其他的头,例如:Cache-Control,设置生存期。注意:只有在响应代码为 200、204、301、302 或 304 时才有效。同样需要注意的是,除了 Last-Modified 头外,该指令可以在输出的头列表中添加一个新的头,但是不能使用这条指令来重写已经存在的头。 2. HttpHeadersModule模块 2.1 指令 指令名称:add_header 语法:add_header name value 默认值:none 使用环境:http、server、location 功能:为HTTP 响应添加头 指令名称:expires 语法:expires [modified] time | epoch | max | off; 默认值:expires off 使用环境:http、server、location、if in location 功能:该指令用于控制是否在响应中添加一个生存期标志   off:阻止改变 Expires 和 Cache-Control 头   max:设置 Expires 头为 2037年,并设置 Cache-Control 头的 max-age 值设为 10 年,如果设置为一个非负数或者是一个时间值

Flink基于Kafka-Connector 数据流容错回放机制

可紊 提交于 2020-10-29 10:54:28
Flink基于Kafka-Connector 数据流容错回放机制及代码案例实战-Flink牛刀小试 Flink牛刀小试系列目录 Flink牛刀小试-Flink 集群运行原理兼部署及Yarn运行模式深入剖析 Flink牛刀小试-Flink Window类型及使用原理案例实战 Flink牛刀小试-Flink Broadcast 与 Accumulators 应用案例实战 Flink牛刀小试-Flink与SparkStreaming之Counters& Accumulators 累加器双向应用案例实战 Flink牛刀小试-Flink分布式缓存Distributed Cache应用案例实战 Flink牛刀小试-Flink状态管理与checkPoint数据容错机制深入剖析 Flink牛刀小试-Flink Window分析及Watermark解决乱序数据机制深入剖析 Flink牛刀小试-Flink Restart Strategies 重启策略机制深入剖析 Flink牛刀小试-Flink CheckPoint状态点恢复与savePoint机制对比剖析 Flink牛刀小试-Flink SQL Table 我们一起去看2018中超联赛 Flink牛刀小试-Flink基于Kafka-Connector 数据流容错回放机制及代码案例实战 [Flink牛刀小试-Flink

[深度应用]·Keras实现Self-Attention文本分类(机器如何读懂人心)

老子叫甜甜 提交于 2020-10-29 02:21:04
[深度应用]·Keras实现Self-Attention文本分类(机器如何读懂人心) 配合阅读: [深度概念]·Attention机制概念学习笔记 [TensorFlow深度学习深入]实战三·分别使用DNN,CNN与RNN(LSTM)做文本情感分析 笔者在 [深度概念]·Attention机制概念学习笔记 博文中,讲解了Attention机制的概念与技术细节,本篇内容配合讲解,使用Keras实现Self-Attention文本分类,来让大家更加深入理解Attention机制。 作为对比,可以访问 [TensorFlow深度学习深入]实战三·分别使用DNN,CNN与RNN(LSTM)做文本情感分析 ,查看不同网络区别与联系。 一、Self-Attention概念详解 了解了模型大致原理,我们可以详细的看一下究竟Self-Attention结构是怎样的。其基本结构如下 ​ 对于self-attention来讲,Q(Query), K(Key), V(Value)三个矩阵均来自同一输入,首先我们要计算Q与K之间的点乘,然后为了防止其结果过大,会除以一个尺度标度 ​ ,其中 ​ 为一个query和key向量的维度。再利用Softmax操作将其结果归一化为概率分布,然后再乘以矩阵V就得到权重求和的表示。该操作可以表示为 ​ 这里可能比较抽象,我们来看一个具体的例子(图片来源于 https:/