epoch

浅析hashCode

匆匆过客 提交于 2020-08-19 16:43:55
写此文的起因是看到一个面试题:默认hashCode()返回的值是什么?GC后hashCode会改变吗? 在以前的认知里,默认hashCode()的返回值是java对象的内存地址没错。然而这又是一个经不起推敲的结论。 首先把一个对象作为key存入hashmap,如果hashCode返回内存地址,那么GC后地址必然改变,那么用这个对象就取不到值了,这显然是不合理的。 不知为何这样的谬误会存在脑子里这么久,从来没有怀疑过它。 既然想到这里,就再简单剖析一下hashCode原理吧。 1、预备知识 1.1 safepoint GC相关。VM线程触发GC时,需要先 stop-the-world ,说人话就是设置一个safepoint。工作线程会时不时检查safepoint状态,一旦发现safepoint被设置就将自己挂起。VM线程发现工作线程都挂起以后就执行GC,完事后再唤醒工作线程。 用现实情况举例就是:leader在群里发了一条"一会儿开会"的消息(safepoint),每个成员时不时查看消息,看到消息第一时间放下手中工作前往会议室(线程挂起),然而有个人沉浸编码无法自拔,十分钟后才看到信息,结果导致会议延迟(GC期间程序暂停时间过长) 至于底层具体如何实现,呃,我没看懂,感兴趣的同学自行了解 https://www.jianshu.com/p/c79c5e02ebe6 1.2 Mark

PyTorch实现用于文本生成的循环神经网络

三世轮回 提交于 2020-08-19 01:05:15
作者|DR. VAIBHAV KUMAR 编译|VK 来源|Analytics In Diamag 自然语言处理(NLP)有很多有趣的应用,文本生成就是其中一个有趣的应用。 当一个机器学习模型工作在诸如循环神经网络、LSTM-RNN、GRU等序列模型上时,它们可以生成输入文本的下一个序列。 PyTorch提供了一组功能强大的工具和库,这些工具和库为这些基于NLP的任务增添了动力。它不仅需要较少的预处理量,而且加快了训练过程。 在本文中,我们将在PyTorch中训练几种语言的循环神经网络(RNN)。训练成功后,RNN模型将预测属于以输入字母开头的语言的名称。 PyTorch实现 这个实现是在Google Colab中完成的,其中的数据集是从Google驱动器获取的。所以,首先,我们将用Colab Notebook安装Google驱动器。 from google.colab import drive drive.mount('/content/gdrive') 现在,我们将导入所有必需的库。 from __future__ import unicode_literals, print_function, division from io import open import glob import os import unicodedata import string import

Lifelong SLAM 论文解读合集(2):针对长时间重复运行SLAM地图更新问题

狂风中的少年 提交于 2020-08-18 20:54:23
目录 (IROS 2020)Are We Ready for Service Robots? The OpenLORIS-Scene Datasets for Lifelong SLAM 下载链接 具体内容 (ICRA 2012)Practice Makes Perfect? Managing and Leveraging Visual Experiences for Lifelong Navigation 经验积累 塑性地图 创建地点 (IROS2009)Towards Lifelong Visual Maps 骨架图和frameSLAM 视角删除 环境类型 (IROS 2020)Are We Ready for Service Robots? The OpenLORIS-Scene Datasets for Lifelong SLAM 一个针对室内服务机器人的lifelong SLAM数据集。 下载链接 数据集传送门: lifelong-robotic-vision.github.io/dataset/scene 数据集传送门: https://shimo.im/docs/HhJj6XHYhdRQ6jjk/read 具体内容 (ICRA 2012)Practice Makes Perfect? Managing and Leveraging Visual Experiences

fasterrcnn深度学习口罩检测

放肆的年华 提交于 2020-08-17 18:25:54
fasterrcnn深度学习口罩检测 前言 FasterRCNN原理详解 训练我们自己的FasterRCNN 使用labelimg制作我们自己的VOC数据集 FasterRCNN训练详解 源码地址与小结 前言 前两周完成了resnet50垃圾分类,但总觉得太过于基础,不能让人眼前一亮,另外由于我自己也是深度学习的爱好者,所以我应该提高一点难度,于是决定做一次目标检测,大概一个月前学习了RCNN,FastRCNN,FasterRCNN的理论。我个人认为FasterRCNN确实是划时代的深度学习模型,在此向何凯明大神表示最大的尊敬。 最初我想做车辆行人与路标的检测,因为在树莓派上实现自动驾驶是我的一个小愿望,但实际实施过程中,本人真的崩溃了很多次,我实在没找到免费的车辆行人路标的voc数据集,自己标注数据集真的心累,所以从闲鱼10元买了口罩数据集,后续的自动驾驶数据集标注训练好后我会补充一篇新的博客,目前就实现一个口罩检测吧。 目前很多博客都没详细讲解fasterRCNN,或者就是让初学者很难懂,因此本文从头到尾全面理解一次,细致到训练中的损失函数计算,文章末尾会附上源码地址 先预览一下检测结果: FasterRCNN原理详解 这是一篇完整的包括原理与实践的博客,请先阅读原理部分,对后续步骤将有更清晰的认识 目前,看到以下是fasterRCNN的结构图,下面进行详细的过程梳理:

【pytorch-ssd目标检测】训练自己创建的数据集

陌路散爱 提交于 2020-08-17 18:11:39
制作类似pascal voc格式的目标检测数据集: https://www.cnblogs.com/xiximayou/p/12546061.html 代码来源:https://github.com/amdegroot/ssd.pytorch 拷贝下来的代码好多坑要踩。。。 我将其上传到谷歌colab上,当前目录结构如下: 需要说明的是,虽然我们只有2类,但是,要加上背景一类,所以总共我们有3类。 首先我们要读取自己的数据集 在config.py中 # config.py import os.path # gets home dir cross platform # HOME = os.path.expanduser("~") HOME = os.path.expanduser("/content/drive/My Drive/pytorch_ssd/") # for making bounding boxes pretty COLORS = ((255, 0, 0, 128), (0, 255, 0, 128), (0, 0, 255, 128 ), (0, 255, 255, 128), (255, 0, 255, 128), (255, 255, 0, 128 )) MEANS = (104, 117, 123 ) mask = { 'num_classes': 3, 'lr

卷积生成对抗网络(DCGAN)---生成手写数字

萝らか妹 提交于 2020-08-17 16:48:17
深度卷积生成对抗网络(DCGAN) ---- 生成 MNIST 手写图片 1、基本原理 生成对抗网络(GAN)由2个重要的部分构成: 生成器(Generator):通过机器生成数据(大部分情况下是图像),目的是“骗过”判别器 判别器(Discriminator):判断这张图像是真实的还是机器生成的,目的是找出生成器做的“假数据” 训练过程 1、固定判别器,让生成器不断生成假数据,给判别器判别,开始生成器很弱,但是随着不断的训练,生成器不断提升,最终骗过判别器。此时判别器判断假数据的概率为50% 2、固定生成器,训练判别器。判别器经过训练,提高鉴别能力,最终能准确判断虽有的假图片 3、循环上两个阶段,最终生成器和判别器都越来越强。然后就可以使用生成器来生成我们想要的图片了 2、相关数学原理 判别器在这里是一种分类器,用于区分样本的真伪,因此我们常常使用交叉熵(cross entropy)来进行判别分布的相似性 \[H(p, q) := -\sum_i p_i \log q_i \] 公式中 \(p_i\) 和 \(q_i\) 为真实的样本分布和生成器的生成分布 假定 \(y_1\) 为正确样本分布,那么对应的( \(1-y_1\) )就是生成样本的分布。 \(D\) 表示判别器,则 \(D(x_1)\) 表示判别样本为正确的概率, \(1-D(x_1)\)

【pytorch-ssd目标检测】训练自己创建的数据集

拟墨画扇 提交于 2020-08-17 16:11:34
制作类似pascal voc格式的目标检测数据集: https://www.cnblogs.com/xiximayou/p/12546061.html 代码来源:https://github.com/amdegroot/ssd.pytorch 拷贝下来的代码好多坑要踩。。。 我将其上传到谷歌colab上,当前目录结构如下: 需要说明的是,虽然我们只有2类,但是,要加上背景一类,所以总共我们有3类。 首先我们要读取自己的数据集 在config.py中 # config.py import os.path # gets home dir cross platform # HOME = os.path.expanduser("~") HOME = os.path.expanduser("/content/drive/My Drive/pytorch_ssd/") # for making bounding boxes pretty COLORS = ((255, 0, 0, 128), (0, 255, 0, 128), (0, 0, 255, 128 ), (0, 255, 255, 128), (255, 0, 255, 128), (255, 255, 0, 128 )) MEANS = (104, 117, 123 ) mask = { 'num_classes': 3, 'lr

【pytorch-ssd目标检测】训练自己创建的数据集

断了今生、忘了曾经 提交于 2020-08-17 16:10:39
制作类似pascal voc格式的目标检测数据集: https://www.cnblogs.com/xiximayou/p/12546061.html 代码来源:https://github.com/amdegroot/ssd.pytorch 拷贝下来的代码好多坑要踩。。。 我将其上传到谷歌colab上,当前目录结构如下: 需要说明的是,虽然我们只有2类,但是,要加上背景一类,所以总共我们有3类。 首先我们要读取自己的数据集 在config.py中 # config.py import os.path # gets home dir cross platform # HOME = os.path.expanduser("~") HOME = os.path.expanduser("/content/drive/My Drive/pytorch_ssd/") # for making bounding boxes pretty COLORS = ((255, 0, 0, 128), (0, 255, 0, 128), (0, 0, 255, 128 ), (0, 255, 255, 128), (255, 0, 255, 128), (255, 255, 0, 128 )) MEANS = (104, 117, 123 ) mask = { 'num_classes': 3, 'lr

第19天:NLP实战(三)——用CNN实现微博谣言检测

谁说我不能喝 提交于 2020-08-17 15:09:35
  接着上次的项目,主要是为了熟悉我们对NLP知识的实际应用,接着上次对深度学习中的DNN的简单应用相信大家对深度学习的相关知识以及相应的实现流程有了一个初步的了解,今天接着上次的 项目 ,通过用CNN对微博谣言检测进行实现。很明显这是个二分类的问题,因此,我们可以用到朴素贝叶斯或者逻辑回归以及支持向量机都可以解决这个问题,另外在深度学习中,我们可以用CNN-Text或者RNN以及LSTM等模型最好,之所以本次用到CNN就是通过本次项目介绍让大家对CNN有一个更深层次的了解。接下来,我们详细给大家介绍项目。 任务介绍   人们常说“流言止于智者”,要想不被网上的流言和谣言盅惑、伤害,首先需要对其进行科学甄别,而时下人工智能正在尝试担任这一角色。那么,在打假一线AI技术如何做到去伪存真?传统的谣言检测模型一般根据谣言的内容、用户属性、传播方式人工地构造特征,而人工构建特征存在考虑片面、浪费人力等现象。本次实践使用基于卷积神经网络(CNN)的谣言检测模型,将文本中的谣言事件向量化,通过循环神经网络的学习训练来挖掘表示文本深层的特征,避免了特征构建的问题,并能发现那些不容易被人发现的特征,从而产生更好的效果。 数据集介绍   本次实践所使用的 数据 [验证码:u0is]是从新浪微博不实信息举报平台抓取的中文谣言数据,数据集中共包含1538条谣言和1849条非谣言。如下图所示

TensorFlow 2入门指南,初学者必备!

独自空忆成欢 提交于 2020-08-17 08:03:19
什么是Tensorflow? TensorFlow是谷歌推出的深度学习框架,于2019年发布了第二版。 它是世界上最著名的深度学习框架之一,被行业专家和研究人员广泛使用。 Tensorflow v1难以使用和理解,因为它的Pythonic较少,但是随着Keras发行的v2现在与Tensorflow.keras完全同步,它易于使用,易学且易于理解。 请记住,这不是有关深度学习的文章,所以我希望您了解深度学习的术语及其背后的基本思想。 我们将使用非常著名的数据集IRIS数据集探索深度学习的世界。 废话不多说,我们直接看看代码。 导入和理解数据集 from sklearn.datasets import load_iris iris = load_iris() 现在,这个 iris 是一个字典。 我们可以使用下面的代码查看键值 iris.keys() dict_keys([‘data’, ‘target’, ‘frame’, ‘target_names’, ‘DESCR’, ‘feature_names’, ‘filename’]) 因此,我们的数据在 data 键中,目标在 targe 键中,依此类推。 如果要查看此数据集的详细信息,可以使用 iris[ ['DESCR']。 现在,我们必须导入其他重要的库,这将有助于我们创建神经网络。 from sklearn.model