测试模型

训练过程Trick合集

北城余情 提交于 2020-01-15 20:08:10
文章目录 1. 写代码之前要做的事情 2.设置端到端的训练评估框架 1)固定随机种子 2)简单化 3)绘制测试集损失 4)在初始阶段验证损失函数 5)初始化 6)人类基线 7)设置一个独立于输入的基线 8)过拟合一个batch 9)验证减少训练损失 10)在训练模型前进行数据可视化 11)可视化预测动态 12)使用反向传播来获得依赖关系 3.挑选模型 1)挑选模型 2)Adam方法是安全的 3)一次只复杂化一个 4)学习率设置 5)每轮训练数据乱序 6)batch_size选择 7)学习率和batchsize的关系 4.正则化 1)获取更多数据 2)数据扩增 3)有创意的扩增 4)预训练 5)跟监督学习死磕 6)输入低维一点 7)模型小一点 8)减小批尺寸 9)Dropout 10)权重衰减Weight Decay 11)早停法Early Stop 12)附加 5.调参 1)随机网格搜索 2)超参数优化 6.测试阶段 1)模型融合 2)TTA测试时增强 参考博客 1. 写代码之前要做的事情 训练神经网络前,别管代码,先从预处理数据集开始。我们先花几个小时的时间,了解 数据的分布 并找出其中的 规律 。 Andrej有一次在整理数据时发现了重复的样本,还有一次发现了图像和标签中的错误。所以先看一眼数据能避免我们走很多弯路。 由于神经网络实际上是数据集的压缩版本,因此您将能够查看网络

开发模型、测试模型

青春壹個敷衍的年華 提交于 2020-01-12 14:40:36
1.测试用例:向被测试的对象提供的一组集合,集合中包含:测试环境、操作步骤、测试数据、预期结果等 2.开发模型: 软件生命周期:需求、计划、设计、编码、测试、运行维护(共6个阶段) 瀑布模型:需求->计划->设计->编码->测试 优点:强调开发的阶段性 强调早期计划及需求调查 强调产品测试 缺点:风险往往迟至后期的测试阶段才显露,失去及早纠正的机会 依赖于早期的唯一一次需求调查,不能适应需求的变化 单一流程,开发中的经验教训不能反馈应用于本产品的过程 适合项目:需求比较稳定的项目 螺旋模型:渐进式开发模型的代表之一 优点:强调严格的全过程风险管理 强调开发阶段的质量 提供机会检讨项目是否有价值继续下去 缺点:引入严格的风险意识、风险分析和风险控制,这对风险管理的技术水平提出很高的要求, 需要投入人员、资金和时间的投入 适合项目:规模庞大、复杂度高、风险大的项目 增量模型:逐块建造 迭代模型:反复求精 *** 敏捷模型: 敏捷宣言:1)个体与交互重于过程和工具(人与人之间的沟通) 2)可用的软件重于完备的文档(轻文档) 3)客户协作重于合同谈判(客户全程参与) 4)响应变化重于遵循计划(拥抱变化,有时间要求) 敏捷开发常用方式:scrum scrum由product owner(产品负责人)、scrum master(敏捷教练)和team(团队)组成。 特点:迭代开发

AlexNet卷积神经网络

徘徊边缘 提交于 2020-01-08 02:06:24
译者按: 祖师爷Hinton 带领的小组经典之作,深度学习开山祖师 Hinton率领的谷歌团队多次夺冠 ,主力成员为 hinton 在多伦多大学的学生 Alex Krizhevsky , Ilya Sutskever , 因此他们的解决方案也叫alexnet , 这篇文章是hinton大神团队的代表性之作,CNN (卷积神经网络)已经成为图像识别处理的标准,alexnet作为CNN的代表性方案基础,开创性的GPU计算卷积 , 仿生视觉细胞的局部感受野等手段解决了图像处理的难题, 和同期的VGG、ResNet、GoogleNet等比肩,使得图像识别成为了人工智能的最成功领域。 ImageNet是一个计算机视觉系统识别项目,缔造者为斯坦福大学教授李飞飞 ,是目前图像识别最大的数据库。是美国斯坦福的计算机科学家,模拟人类的识别系统建立的。能够从图片识别物体。ImageNetLSVRC图像识别大赛素有国际“计算机视觉奥林匹克“之称。数据集包含大约1000多万张各种图片,被分为1000个分类,参赛者训练分类器,在测试数据上取得最高辨识正确率者为优胜。 原文地址: http://papers.nips.cc/paper/4824-imagenet-classification-with-deep-convolutional-neural-networks 作者 : University of

测试模型后sql整理

亡梦爱人 提交于 2020-01-07 15:48:49
最近测试了一个分析模型,没有页面,测试工作为数据库数据验证。 根据数据分析师提供的计算公式,查询数据库数据验证结果值。 mape=abs(si-sj)/∑sj_m 碰到了以下问题: 一、DBeaver工具Hana库表跨库查询 A表在user1账号下,B表在user2账号下,两表需关联,涉及到跨库查表。 开通权限后,直接加前缀查询即可。 例如: SELECT * FROM user2.B Hana连接后,加粗的表即为登录的账号。 二、数据库中存在每日重复数据,需要以月份维度来统计 1.对每日数据进行分组求和。 select date,name,sum(day_cnt) as num from user2.B where date>='2018-01-01' group by date,name 查询结果为: 2.截取date前7位数据,并且按月份求和。 用到了substr('HelloWorld',0,3)函数,先对字段进行截取。 select substr(date,0,7) AS date ,substr(name,0,2) as name,sum(day_cnt) as num --截取时间前7位,系列前2位 from uesr2.B where date>='2018-01-01' group by date,name 查询结果: 再按照月份求和。 SELECT name

如何评测软件工程知识技能水平

♀尐吖头ヾ 提交于 2020-01-06 20:14:24
根据本课程的学习以及自身的知识和经验,您认为一个软件工程师的软件工程知识技能水平高低主要体现在哪些方面,请您简要总结一下:   1.具有优秀的学习能力,IT技术更新很快,软件工程师应具备的技能里很重要的一点就是学习能力。只有具备了学习能力,才能很快适应市场与业务的需要,有时候工作的需求不是你在学校就已经学过的,只能靠着之前积累的经验与快速学习熟悉新的知识,升华自己的能力,为以后成为架构师后者其他职位打下基础。   2.具有扎实的计算机专业知识,吃透高等数学、离散数学、算法等课程。(1)基础编程语言,编程语言是软件工程师必备的技能,不同方向的开发需要使用到不同的编程语言通常来说,软件工程师往往需要掌握多门编程语言。(2)算法。算法是软件工程师的重点知识技能,算法的掌握情况往往能够决定软件工程师的成长高度。(3)数据库。信息是以数据为中心的,因此与数据库的交互在所有软件中都是必不可少的,了解数据库操作和编程是软件工程师需要具备的基本素质之一。目前常用的数据库软件有Oracle数据库和SQL Server等。   3.具有对这个行业的热爱,才有能坚持与继续学习的动力。   4.具有良好的交流与沟通能力,现在的软件开发永远不是一个人的游戏,需要与团队成员协调沟通,分配好工作的任务与进度,才能够开发出高质量的软件。 一、选择题 1、软件工程的出现主要是由于( ) A.程序设计方法学的影响  

Netflix 推荐系统:第二部分

a 夏天 提交于 2020-01-06 14:16:14
原文链接: http://techblog.netflix.com/2012/06/netflix-recommendations-beyond-5-stars.html 在 blog 的第一部分,我们详细介绍了 Netflix 个性化推荐系统的各个组成部分。我们也解释了自从我们宣布 Netflix Prize 后,Netflix 推荐系统是如何变化的。100 万美金的奖金让我们不论在算法创新,还是在品牌宣传和吸引人才加入方面都获得了丰厚的回报。不过,准确的预测电影评分仅只是我们推荐系统的一部分。在本文中,我们将更加深入的介绍个性化推荐技术,讨论当前我们使用的模型、数据,以及我们在这方面的创新方法。 排序 推荐系统的目的是给用户提供一些有吸引力的物品供用户选择。具体的做法是先选择一些候选物品,并对这些物品按照用户感兴趣的程度进行排序。展示推荐结果最常用的方式是组成某种有序列表,而在 Netflix,列表就是一行行的视频。因此,我们需要一个排序模型,利用各种各样的信息,来为每一个用户生成个性化推荐列表。 如果你正在寻找一个能够最大化用户消费的排序函数,那么最显然的基本函数就是物品的热门程度。原因很简单:用户总是倾向于观看大家都喜欢观看的视频。然而,热门推荐是个性化推荐的反义词,它将为每个用户生成千篇一律的结果。因此,我们的目标就是找到一个比热门推荐更好的个性化排序算法

如何评测软件工程知识技能水平

坚强是说给别人听的谎言 提交于 2020-01-06 01:45:37
根据本课程的学习以及自身的知识和经验,您认为一个软件工程师的软件工程知识技能水平高低主要体现在哪些方面,请您简要总结一下:   1.具有优秀的学习能力,IT技术更新很快,软件工程师应具备的技能里很重要的一点就是学习能力。只有具备了学习能力,才能很快适应市场与业务的需要,有时候工作的需求不是你在学校就已经学过的,只能靠着之前积累的经验与快速学习熟悉新的知识,升华自己的能力,为以后成为架构师后者其他职位打下基础。   2.具有扎实的计算机专业知识,吃透高等数学、离散数学、算法等课程。(1)基础编程语言,编程语言是软件工程师必备的技能,不同方向的开发需要使用到不同的编程语言通常来说,软件工程师往往需要掌握多门编程语言。(2)算法。算法是软件工程师的重点知识技能,算法的掌握情况往往能够决定软件工程师的成长高度。(3)数据库。信息是以数据为中心的,因此与数据库的交互在所有软件中都是必不可少的,了解数据库操作和编程是软件工程师需要具备的基本素质之一。目前常用的数据库软件有Oracle数据库和SQL Server等。   3.具有对这个行业的热爱,才有能坚持与继续学习的动力。   4.具有良好的交流与沟通能力,现在的软件开发永远不是一个人的游戏,需要与团队成员协调沟通,分配好工作的任务与进度,才能够开发出高质量的软件。 一、选择题 1、软件工程的出现主要是由于( ) A.程序设计方法学的影响  

深度学习中的双下降现象

爱⌒轻易说出口 提交于 2019-12-30 02:57:48
2019-12-26 19:21:03 作者:Preetum Nakkiran,Gal Kaplun,Yamini Bansal,Tristan Yang,Boaz Barak,Ilya Sutskever 编译:ronghuaiyang 导读 深度学习中的双下降现象,可能大家也遇到过,但是没有深究,OpenAI这里给出了他们的解答。 我们展示了 CNN,ResNet 以及 transformers 中的双下降现象,随着模型的尺寸,数据集的大小以及训练时间的增加,performance 先提升,然后变差,然后再次提升。这种效果通常可以通过仔细的正则化来避免。虽然这种行为似乎是相当普遍的,但我们还没有完全理解它为什么会发生,并把对这种现象的进一步研究作为一个重要的研究方向。 论文:https://arxiv.org/abs/1912.02292 包括 CNNs、ResNets、transformer 在内的许多现代深度学习模型,在不使用 early stopping 或正则化时,都表现出之前观察到的双下降现象。峰值发生在一个可以预见的“特殊的时刻”,此时模型刚好可以去拟合训练集。当我们增加神经网络参数的数量,刚开始的时候,测试误差减少,然后会增加,而且,模型开始能够拟合训练集,进行了第二次下降。 传统统计学家认为“模型越大越糟”的传统观点,以及“模型越大越好”的现代机器学习范式

V模型、W模型、H模型示意图以及优缺点对比

谁都会走 提交于 2019-12-29 14:45:53
最近有朋友在 知识星球 上提问W和H模型的区别,现在就总结一下常见的三种测试模型。 V模型、W模型、H模型 测试模型的概念 随着测试过程的管理和发展,测试人员通过大量的实践,从而总结出了不少测试模型,如常见的V模型、W模型、H模型等。这些模型与开发紧密结合,对测试活动进行了抽象,成为了测试过程管理的重要参考依据。 V模型 V模型示意图: V模型各环节: 1、单元测试 又称模块测诚,针对软件设计中的最小单位—程庄模块,进行正确性检查的测试工作。单元测试需要从程序的内部结构出发设计测试用例。多个模块可以平行地独立进行单元测试。 单元定义:C中指一个函数,Java中指一个类,在图形化的软件中,单元一般指1个窗口,1个菜单。 2、集成测试 又叫组装测试,通常在单元测试的基础上,将所有程序模块进行有序的、递增的测试。重点测试不同模块的接口部分。 3、系统测试(system testing): 指的是将整个软件系统看为一个整体进行测试,包括对功能、性能、以及软件所运行的软硬件环境进行测试。 系统测试在系统集成完毕后进行测试,前期主要测试系统的功能是否满足需求,后期主要测试系统运行的性能是否满足需求,以及系统在不同的软硬件环境中的兼容性等。 4、验收测试 α测试:Alpha是内测版本,即现在所说的C8,比版本表示该软件仅仅是一个初步完成品,通常只在软件开发者内部交流

自然语言分类任务 (1)

空扰寡人 提交于 2019-12-26 07:17:39
文章目录 自然语言分类任务 数据集 模型 准备数据 数据集预览 查看一个样本 切分train/val 创建vocabulary 查看训练集中最常见的单词 查看单词表 查看label 创建iterators Word Averaging模型 模型结构 模型配置 模型参数计算 初始化参数 定义优化器和损失函数 计算预测的准确率 模型训练train 模型验证evaluate 读取保存的模型 语句测试 RNN模型(没有跑) 模型结构 模型配置 词向量 使用glove训练好的词向量 添加PAD单词、UNK单词 模型参数计算 模型训练 读取保存的模型 语句测试 CNN模型 单卷积核 模型结构 模型配置 词向量 使用glove训练好的词向量 添加PAD单词、UNK单词 模型参数计算 优化器和损失函数 模型训练 读取保存的模型 语句测试 卷积核并联 模型结构 模型配置 词向量 使用glove训练好的词向量 添加PAD单词、UNK单词 模型参数计算 模型训练 Word Averaging (mask) 数据准备 创建vocabulary 创建iterators Word Averaging模型 模型结构 模型配置 计算模型参数 初始化模型 优化器和损失函数 计算预测的准确率 模型训练 模型验证 自然语言分类任务 使用Pytorch模型和TorchText做情感分类(检测一段文字的情感是正面情绪