epoch

华为云“云上先锋”·AI主题赛(垃圾分类)-Top7复盘

别等时光非礼了梦想. 提交于 2021-01-07 23:23:26
文章目录 介绍 赛事介绍 数据分析 模型训练 玄学炼丹 介绍 在2020.12-2021.1这段时间和师兄参加了华为云“云上先锋”·AI主题赛 官网 (垃圾分类),最后拿到了 第7名(7/1405) 的成绩,在最终榜单上分数为 96.64 . 赛事介绍 1.赛题描述 本赛题采用深圳市垃圾分类标准,赛题任务是对垃圾图片进行分类,即首先识别出垃圾图片中物品的类别(比如易拉罐、果皮等),然后查询垃圾分类规则,输出该垃圾图片中物品属于可回收物、厨余垃圾、有害垃圾和其他垃圾中的哪一种。 模型输出格式示例: { " result ": “可回收物/易拉罐” } 2.数据说明 本次比赛提供的训练集中包含了43类生活中常见垃圾,参赛者可自行划分用于模型调优用的验证集和测试集。 datasets |- train_data ( 训练集目录,包含垃圾图片和对应的标签文件(.txt)) |- garbage_classify_rule.json (垃圾分类规则字典,key值是id,value是“垃圾种类/具体物品名”。 例如训练数据标签文件img1.txt的内容是“img_1.jpg, 0”,表示img_1.jpg这张图中的垃圾是“其他垃圾/一次性快餐盒”。) 3.评分标准 如上文模型输出格式示例中,模型预测的物品类别是“易拉罐”,如果图片的真实类别是易拉罐,则这张图片预测正确,否则预测错误

TensorFlow——学习率衰减的使用方法

徘徊边缘 提交于 2021-01-05 08:38:31
在TensorFlow的优化器中, 都要设置学习率。学习率是在精度和速度之间找到一个平衡: 学习率太大,训练的速度会有提升,但是结果的精度不够,而且还可能导致不能收敛出现震荡的情况。 学习率太小,精度会有所提升,但是训练的速度慢,耗费较多的时间。 因而我们可以使用退化学习率,又称为衰减学习率。它的作用是在训练的过程中,对学习率的值进行衰减,训练到达一定程度后,使用小的学习率来提高精度。 在TensorFlow中的方法如下:tf.train.exponential_decay(),该方法的参数如下: learning_rate, 初始的学习率的值 global_step, 迭代步数变量 decay_steps, 带迭代多少次进行衰减 decay_rate, 迭代decay_steps次衰减的值 staircase=False, 默认为False,为True则不衰减 例如 tf.train.exponential_decay(initial_learning_rate, global_step=global_step, decay_steps=1000, decay_rate=0.9)表示没经过1000次的迭代,学习率变为原来的0.9。 增大批次处理样本的数量也可以起到退化学习率的作用。 下面我们写了一个例子,每迭代10次,则较小为原来的0.5,代码如下: import

快速理解HBase和BigTable

ぐ巨炮叔叔 提交于 2021-01-04 08:44:57
有关系行数据库经验的人(比如我),在最初接触HBase这样的数据库时,对数据结构的理解容易遇到障碍。会不自觉的将HBase的行、列等概念映射成关系型数据库的行、列。为了加速理解HBase的一些概念,翻译了这篇文章《Understanding HBase and BigTable》(HBase官方文档推荐阅读文章)。 学习Hbase(Google BigTable的开源实现) 最困难 的是理解它的实际概念。 很不幸的是,这两个伟大的系统在其概念中包含了table和base两个词,这往往会导致一些人(比如我) 把它们跟 关系型数据库 的东西 搞混淆 。 本文旨在从概念的角度描述这些分布式数据存储系统。阅读之后,你应该能够更好地判断,什么时候要使用Hbase,什么时候该更好地使用“传统”数据库。 一切都在术语中 幸运的是,Google的BigTable论文清楚地解释了BigTable究竟是什么。这是“数据模型”部分的第一句话: 注意:请牢记上边这句话的每一个词 BigTable论文继续说明 Hadoop wiki的HbaseArchitecture页面假设: 尽管所有这些看起来都相当神秘,但是一旦你将它分解为单词,它就变得容易明确了。我喜欢按照这个顺序讨论它们: map,持久化(persistent),分布式(distributed),有序(sorted),多维

keras02

故事扮演 提交于 2021-01-04 07:34:35
本项目参考: https://www.bilibili.com/video/av31500120?t=4657 训练代码 1 # coding: utf-8 2 # Learning from Mofan and Mike G 3 # Recreated by Paprikatree 4 # Convolution NN Train 5 6 import numpy as np 7 from keras.datasets import mnist 8 from keras.utils import np_utils 9 from keras.models import Sequential 10 from keras.layers import Convolution2D, Activation, MaxPool2D, Flatten, Dense 11 from keras.optimizers import Adam 12 from keras.models import load_model 13 14 15 nb_class = 10 16 nb_epoch = 4 17 batchsize = 128 18 19 ''' 20 1st,准备参数 21 X_train: (0,255) --> (0,1) CNN中似乎没有必要?cnn自动转了吗? 22

深入浅出 ZooKeeper

半城伤御伤魂 提交于 2020-12-30 17:01:33
ZooKeeper 是一个分布式协调服务 ,由 Apache 进行维护。 ZooKeeper 可以视为一个高可用的文件系统。 ZooKeeper 可以用于发布/订阅、负载均衡、命令服务、分布式协调/通知、集群管理、Master 选举、分布式锁和分布式队列等功能 。 一、ZooKeeper 简介 1.1 ZooKeeper 是什么 ZooKeeper 是 Apache 的顶级项目。 ZooKeeper 为分布式应用提供了高效且可靠的分布式协调服务,提供了诸如统一命名服务、配置管理和分布式锁等分布式的基础服务。在解决分布式数据一致性方面,ZooKeeper 并没有直接采用 Paxos 算法,而是采用了名为 ZAB 的一致性协议。 ZooKeeper 主要用来解决分布式集群中应用系统的一致性问题,它能提供基于类似于文件系统的目录节点树方式的数据存储。但是 ZooKeeper 并不是用来专门存储数据的,它的作用主要是用来 维护和监控存储数据的状态变化。通过监控这些数据状态的变化,从而可以达到基于数据的集群管理。 很多大名鼎鼎的框架都基于 ZooKeeper 来实现分布式高可用,如:Dubbo、Kafka 等。 1.2 ZooKeeper 的特性 ZooKeeper 具有以下特性: 顺序一致性: 所有客户端看到的服务端数据模型都是一致的;从一个客户端发起的事务请求

BERT可以上几年级了?Seq2Seq“硬刚”小学数学应用题

眉间皱痕 提交于 2020-12-28 08:03:37
©PaperWeekly 原创 · 作者| 苏剑林 单位|追一科技 研究方向|NLP、神经网络 ▲“鸡兔同笼”的那些年 “盈亏问题”、“年龄问题”、“植树问题”、“牛吃草问题”、“利润问题”...,小学阶段你是否曾被各种花样的数学应用题折磨过呢?没关系,现在机器学习模型也可以帮助我们去解答应用题了,来看看它可以上几年级了? 本文将给出一个求解小学数学应用题(Math Word Problem)的 baseline,基于ape210k 数据集 [1] 训练,直接用 Seq2Seq 模型生成可执行的数学表达式,最终 Large 版本的模型能达到 73%+ 的准确率,高于 ape210k 论文所报告的结果。 所谓“硬刚”,指的是没有对表达式做特别的转换,也没有通过模板处理,就直接生成跟人类做法相近的可读表达式。 数据处理 这里我们先观察一下 ape210k 数据集的情况: { "id": "254761", "segmented_text": "小 王 要 将 150 千 克 含 药 量 20% 的 农 药 稀 释 成 含 药 量 5% 的 药 水 . 需 要 加 水 多 少 千 克 ?", "original_text": "小王要将150千克含药量20%的农药稀释成含药量5%的药水.需要加水多少千克?", "ans": "450", "equation": "x=150*20%/5%

Postgresql: 时间戳long,TimeStamp,Date,String互转

醉酒当歌 提交于 2020-12-23 10:58:12
PgAdmin窗口: Java窗口: 1. 时间戳Long转Timestamp select TO_TIMESTAMP(1512490630) as time from tablename; 2. TimeStamp转时间戳Long 转10位 SELECT EXTRACT(epoch FROM NOW()); SELECT EXTRACT(epoch FROM CAST(‘2017-12-06 00:17:10’ AS TIMESTAMP)); 转13位 转13位向下取整 SELECT EXTRACT(epoch FROM NOW())*1000,floor(EXTRACT(epoch FROM NOW())*1000); 4. String转Date 只能得到年月日,得不到时分秒,怪哉, 在这篇博文 里找到了答案,设计如此… select to_date(‘2020-08-28 12:55:05’) 5. TimeStamp 10位,13位 转String select to_char(to_timestamp(1512490630), ‘YYYY-MM-DD HH24:MI:SS’); SELECT to_char(to_timestamp(t.create_time / 1000), ‘YYYY-MM-DD HH24:MI:SS’); 10位转String SELECT to

torchtext的使用方法

半腔热情 提交于 2020-12-19 12:26:26
torchtext包含以下组件 Field :主要包含以下数据预处理的配置信息,比如指定分词方法,是否转成小写,起始字符,结束字符,补全字符以及词典等等 Dataset :继承自pytorch的Dataset,用于加载数据,提供了TabularDataset可以指点路径,格式,Field信息就可以方便的完成数据加载。同时torchtext还提供预先构建的常用数据集的Dataset对象,可以直接加载使用,splits方法可以同时加载训练集,验证集和测试集。 Iterator : 主要是数据输出的模型的迭代器,可以支持batch定制。 Field Field 包含一写文本处理的通用参数的设置,同时还包含一个词典对象,可以把文本数据表示成数字类型,进而可以把文本表示成需要的tensor类型 以下是Field对象包含的参数: sequential: 是否把数据表示成序列,如果是False, 不能使用分词 默认值: True. use_vocab: 是否使用词典对象. 如果是False 数据的类型必须已经是数值类型. 默认值: True. init_token: 每一条数据的起始字符 默认值: None. eos_token: 每条数据的结尾字符 默认值: None. fix_length: 修改每条数据的长度为该值,不够的用pad_token补全. 默认值: None. tensor

C++11标准库chrono库使用

我的未来我决定 提交于 2020-12-19 11:27:32
chrono是C++11新加入的方便时间日期操作的标准库,它既是相应的头文件名称,也是std命名空间下的一个子命名空间,所有时间日期相关定义均在std::chrono命名空间下。通过这个新的标准库,可以非常方便进行时间日期相关操作。 chrono库主要包含了三种类型:duration, time_point 和 clock。 Duration(时间间隔) chrono库中用一个duration模板类,用来表示一段时间间隔,可以表示几秒钟、几分钟或者几个小时的时间间隔。 原型 template<typename _Rep, typename _Period = ratio< 1 >> struct duration { typedef _Rep rep; ... private: rep __r; //内部维护的计数个数成员 ... }; 第一个模版参数是数值类型,表示时钟个数;第二个为std::ratio,用来表示每个时钟的周期(单位为秒)。 ratio的原型是 template <intmax_t _Num, intmax_t _Den = 1 > struct ratio; 这是一个非类型模版参数的模版类,intmax_t是定义在cstdint头文件中的内置类型。 第一个参数代表分子,第二个代表分母,两者表示一个通用的比率类型。它们必须在编译期间确定为常量值 。分母默认为1

ZooKeeper的核心原理

筅森魡賤 提交于 2020-12-18 17:36:18
前言 在了解了zk的基本概念以后,我们来介绍一下ZK的核心原理。 没有了解过zk的同学,请先去了解zk的基本概念---->>> ZooKeeper入门指南 zk的角色 ZooKeeper的zab协议 zookeeper的核心是 原子广播 ,这个机制保证了各个server之间的同步。实现这个机制的协议叫做 Zab协议 。 zab协议有两种模式,分别是 恢复模式 和 广播模式 。当服务启动或者 leader 崩溃后, Zab 就进入了 恢复模式 。当 leader 被选举出来且 超过一半的server 完成了跟leader的 状态同步 以后,恢复模式结束。 zookeeper的工作原理 为了保证事务的顺序一致性,zookeeper采用了递增的事务id号(zxid)来标识事务。所有的提议(proposal)都在被提出的时候加上了zxid。实现中zxid是一个64位的数字,它高32位是epoch用来标识leader关系是否改变,每次一个leader被选出来,它都会有一个新的epoch,标识当前属于那个leader的统治时期。低32位用于递增计数。 每个Server在工作过程中有三种状态: LOOKING:当前server没有发现leader的情况,通常出现在server启动时。 LEADING:当前server成为了leader。 FOLLOWING:leader已经选举出来