epoch

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

百般思念 提交于 2020-08-10 09:30:04
制作类似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

JAVA并发编程入门篇,思考同步锁Synchronized背后的实现哲学

时光怂恿深爱的人放手 提交于 2020-08-09 18:11:10
多线程在概念上类似抢占式多任务处理,线程的合理使用能够提升程序的处理能力,但是使用的同时也带来了弊端,对于共享变量访问就会产生安全性的问题。下面来看一个多线程访问共享变量的例子: public class ThreadSafty { private static int count = 0; public static void incr() { try { Thread.sleep(1); } catch (InterruptedException e) { e.printStackTrace(); } count ++; } public static void main(String[] args) throws InterruptedException { for (int i = 0 ; i < 1000; i++) { new Thread(()->{ ThreadSafty.incr(); },"threadSafty" + i).start(); } TimeUnit.SECONDS.sleep(3); System.out.println("运行结果是:" + count); } } 变量count的运行结果始终是小于等于1000的随机数,因为线程的可见性和原子性。 一、多线程访问的数据安全性 如何保证线程并行运行的数据安全性问题,这里首先能够想到的是加锁吧

AI大有可为:NAIE平台助力垃圾分类

旧城冷巷雨未停 提交于 2020-08-09 13:33:24
摘要: 生活垃圾的分类和处理是目前整个社会都在关注的热点,如何对生活垃圾进行简洁高效的分类与检测对垃圾的运输处理至关重要。AI技术在垃圾分类中的应用成为了关注焦点。 如今AI已经是这个时代智能的代名词了,任何领域都有AI的身影,垃圾分类及监管等场景自然也少不了“AI+”的赋能。 不过,垃圾往往属于商品的极端变形体,情况比较特殊。目前的技术在视觉可见的基础上,是可以做到垃圾分类报警提醒的,比如判断垃圾是否是经过分类整理的。至于是否能够直接进行视觉检测并分类,且达到某种效果,需要更多的数据和实验支撑才能判断这件事情的可行性。针对这些问题,我们或许可以从海华垃圾分类挑战赛中去听听参赛者都是如何用技术来改变世界的。 海华垃圾分类挑战赛数据包括单类垃圾数据集以及多类垃圾数据集。单类垃圾数据集包含80,000张单类生活垃圾图片,每张单类垃圾图片中仅有一个垃圾实例。多类垃圾数据集包括4998张图像,其中2,998张多类垃圾图片作为训练集数据,A榜和B榜各包含1000张测试图像,每张多类垃圾图片中包含至多20类垃圾实例。我们将对两种数据集分别进行介绍。 一、多类别垃圾 图1 多类垃圾数据类别分布 如图1所示,多类别垃圾涵盖了204类垃圾,但这204类的数据非常不均衡,有一些类别数目非常少甚至没有出现。 图2 多类垃圾数据可视化 图2中两张图是训练集中的两张图像

计算机视觉中的半监督学习

僤鯓⒐⒋嵵緔 提交于 2020-08-09 06:46:16
作者:Amit Chaudhary 编译:ronghuaiyang 原文链接: 计算机视觉中的半监督学习 ​ mp.weixin.qq.com 导读 图解半监督的各种方法的关键思想。 计算机视觉的半监督学习方法在过去几年得到了快速发展。目前最先进的方法是在结构和损失函数方面对之前的工作进行了简化,以及引入了通过混合不同方案的混合方法。 在这篇文章中,我会通过图解的方式解释最近的半监督学习方法的关键思想。 1、自训练 在该半监督公式中,对有标签数据进行训练,并对没有标签的数据进行伪标签预测。然后对模型同时进行 ground truth 标签和伪标签的训练。 a. 伪标签 Dong-Hyun Lee[1] 在 2013 年提出了一个非常简单有效的公式 —— 伪标签。 这个想法是在一批有标签和没有标签的图像上同时训练一个模型。在使用交叉熵损失的情况下,以普通的监督的方式对有标签图像进行训练。利用同一模型对一批没有标签的图像进行预测,并使用置信度最大的类作为伪标签。然后,通过比较模型预测和伪标签对没有标签的图像计算交叉熵损失。 总的 loss 是有标签和没有标签的 loss 的加权和。 为了确保模型已经从有标签的数据中学到了足够的知识,在最初的 100 个 epoch 中,αt 被设置为 0。然后逐渐增加到 600 个 epochs,然后保持不变。 b. Noisy Student Xie

PyTorch应用:用ResNet进行交通标志分类

送分小仙女□ 提交于 2020-08-08 15:41:19
德国交通标志识别基准数据集:可能是自动驾驶汽车领域最受欢迎的图像分类数据集。 自动驾驶车辆需要对交通标志进行检测和分类,以了解应用于路段的交通规则。也许,这个数据集太小而且不完整,无法用于实际应用。不过,它是计算机视觉算法的一个很好的baseline。 数据集链接: [http://benchmark.ini.rub.de/?section=gtsrb&subsection=about] ▌数据集 数据集由两部分组成:训练集和测试集。 训练集包含39209张交通标志图片, 共分为43类,例如停车标志,自行车穿越和速度限制30 km / h。 德国交通标志识别数据集图像的例子 数据集的样本类别非常不均衡(imbalanced)。 例如,“速度限制(50 km / h)”符号有1800个样本,但“危险曲线向左”符号只有168个。 测试集具有12630张图片。2011年IJCNN就是用这个数据集进行了一场比赛. 您可以从官方网站下载数据集。 http:// benchmark.ini.rub.de/? section=gtsrb&subsection=dataset ▌实验方法 我尝试使用在ImageNet数据集上预训练的ResNet34卷积神经网络来进行迁移学习。 我在fast.ai最新版本的“ 深入学习编码器 ”课程中学到了解决计算机视觉问题的方法

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

馋奶兔 提交于 2020-08-08 08:30:26
作者|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

pointnet++之scannet/train.py

扶醉桌前 提交于 2020-08-06 23:38:09
1.作者可能把scannet数据集分成了训练集和测试集并处理成了.pickle文件。 2.在代码运行过程中,作者从.pickle文件中读出训练集1201个场景的x、y、z坐标和测试集312个场景的x、y、z坐标。 3.考虑把点存到.txt文件中,用cloudcompare可视化一下。 2--地板 3--椅子 8--沙发 20--靠枕 单独存入训练数据到txt文件 : TRAIN_DATASET = scannet_dataset.ScannetDataset( root=DATA_PATH , npoints=NUM_POINT , split= 'train') for i in range(len(TRAIN_DATASET.scene_points_list)): filename = '' .join([ " TRAIN_DATASET_ " ,str(i+1), ' .txt ' ]) np.savetxt(filename, TRAIN_DATASET.scene_points_list[i],fmt = " %.8f " , delimiter= ' , ' ) 单独存入训练数据的标签到txt文件 : for i in range(len(TRAIN_DATASET.semantic_labels_list)): filename = '' .join([ "

【技术博客】生成式对抗网络模型综述

左心房为你撑大大i 提交于 2020-08-06 10:24:22
生成式对抗网络模型综述 作者:张真源 GAN GAN简介 生成式对抗网络( Generative adversarial networks,GANs )的核心思想源自于零和博弈,包括生成器和判别器两个部分。生成器接收随机变量并生成“假”样本,判别器则用于判断输入的样本是真实的还是合成的。两者通过相互对抗来获得彼此性能的提升。判别器所作的其实就是一个二分类任务,我们可以计算他的损失并进行反向传播求出梯度,从而进行参数更新。 GAN的优化目标可以写作: $$\large\min_G\max_DV(D,G)= \mathbb{E} {x\sim p {data}}[\log D(x)]+\mathbb{E}_{z\sim p_z(z)}[log(1-D(G(z)))]$$ 其中$$\log D(x)$$代表了判别器鉴别真实样本的能力,而$$D(G(z))$$则代表了生成器欺骗判别器的能力。在实际的训练中,生成器和判别器采取交替训练,即先训练D,然后训练G,不断往复。 WGAN 在上一部分我们给出了GAN的优化目标,这个目标的本质是在最小化生成样本与真实样本之间的JS距离。但是在实验中发现,GAN的训练非常的不稳定,经常会陷入坍缩模式。这是因为,在高维空间中,并不是每个点都可以表示一个样本,而是存在着大量不代表真实信息的无用空间。当两个分布没有重叠时

YOLOv5代码详解(test.py部分)

随声附和 提交于 2020-08-06 07:55:20
目录 2. test.py 2.1 设置超参数 2.2 设置任务(验证,测试,学习) 2.3 测试函数 2.3.1 初始化模型 2.3.2 判断设备类型并仅使用一张GPU进行测试 2.3.3 获取配置文件路径和文件参数 2.3.4 数据获取 2.3.5 计算map数据 2.3.6 打印结果(图片,速度),保存结果至json,并返回结果 2. test.py 该部分主要用于运行train.py时,计算每个epoch的mAP。 PS,与train.py相似的部分就不再阐述。 2.1 设置超参数 权重,数据,batch size,图像尺寸,使用哪张显卡,数据增强,计算mAP。if __name__ == '__main__': parser = argparse.ArgumentParser(prog='test.py') parser.add_argument('--weights', type=str, default='weights/best.pt', help='model.pt path') parser.add_argument('--data', type=str, default='data/coco.yaml', help='*.data path') parser.add_argument('--batch-size', type=int, default=16,

写给程序员的机器学习入门 (六)

醉酒当歌 提交于 2020-08-06 04:45:45
这一篇将会举两个例子说明怎么应用递归模型,包括文本情感分类和预测股价走势。与前几篇不同,这一篇使用的数据是现实存在的数据,我们将可以看到更高级的模型和手法🤠。 例子① - 文本感情分类 文本感情分类是一个典型的例子,简单的来说就是给出一段话,判断这段话是正面还是负面的,例如淘宝或者京东上对商品的评价,豆瓣上对电影的评价,更高级的情感分类还能对文本中的感情进行细分。因为涉及到自然语言,文本感情分类也属于自然语言处理 (NLP, Nature Langure Processing),我们接下来将会使用 ami66 在 github 上 公开的数据 ,来实现根据商品评论内容识别是正面评论还是负面评论。 在处理文本之前我们需要对文本进行切分,切分方法可以分为按字切分和按单词切分,按单词切分的精度更高但要求使用分词类库。处理中文时我们可以使用开源的 jieba 类库来按单词切分,执行 pip3 install jieba --user 即可安装,使用例子如下: # 按字切分 >>> words = [c for c in "我来到北京清华大学"] >>> words ['我', '来', '到', '北', '京', '清', '华', '大', '学'] # 按单词切分 >>> import jieba >>> words = list(jieba.cut("我来到北京清华大学")) >>