epoch

一行命令跑评测,港中文MMLab开源自监督表征学习代码库

感情迁移 提交于 2020-10-09 05:10:42
   自监督表征学习发展迅速,但也存在诸多问题。近日,香港中文大学多媒体实验室(MMLab)和南洋理工大学的研究者开源了一套统一的自监督学习代码库 OpenSelfSup。    前言   近几个月来自监督表征学习领域获得了显著突破,特别是随着 Rotation Prediction、DeepCluster、MoCo、SimCLR 等简单有效的方法的诞生,自监督表征学习大有超越有监督表征学习的趋势。   然而,做这个领域的研究者都深有感触:1)自监督任务复杂而多样,不同方法各有各的专用训练代码,难以结合、复用和改进;2)评价方案不统一,不同的方法难以在公平环境下对比;3)动辄百万千万的训练数据量,训练效率是个大问题。   针对这些问题,香港中文大学多媒体实验室(MMLab)和南洋理工大学的研究者最近开源了一套统一的自监督学习代码库:OpenSelfSup。   开源地址: https://github.com/open-mmlab/OpenSelfSup    OpenSelfSup    统一的代码框架和模块化设计   OpenSelfSup 使用 PyTorch 实现,支持基于分类、重建、聚类、memory bank、contrastive learning 的多种自监督学习框架,目前收录了 Relative Location、Rotation Prediction

Qt开源作品29-NTP服务器时间同步

耗尽温柔 提交于 2020-10-06 09:04:30
一、前言 很多软件都有时间同步的功能,尤其是Qt在嵌入式设备上的,有时候还有很多是没有UI界面的程序,而硬件上有个时钟,时间久了难免没有电,需要从服务器来同步时间来保证本地的时间是正确的,不然本地记录的一些日志的时间都是不正确的,很多还可能是1970年的。 NTP同步时间是个标准的协议,使用的端口是123端口,这个端口很牛逼,居然霸占了123这个端口,碉堡!使用NTP服务同步时间,需要设置个时间服务器IP地址,这个地址可以网上找到很多的,微软自带的那个有时候行有时候不行,因为默认用的UDP协议,所以是不可靠的,有丢包的可能,建议选择一些国内的时间服务器,比如一些大学的时间服务器,还是比较准确可靠的。 二、代码思路 NtpClient::NtpClient(QObject *parent) : QObject(parent) { ntpIP = "202.120.2.101"; udpSocket = new QUdpSocket(this); connect(udpSocket, SIGNAL(connected()), this, SLOT(sendData())); connect(udpSocket, SIGNAL(readyRead()), this, SLOT(readData())); } void NtpClient::sendData() { qint8 LI =

我的并发编程(一):java锁的分类

为君一笑 提交于 2020-10-05 18:05:10
一、概述 在我们的开发工作中,需要利用多线程处理高并发的情况,那么我们就不可避免的需要用到锁机制。分类总览图如下: 二、锁的分类 1. 公平锁与非公平锁 (1) 公平锁:在并发环境中,多个线程需要对同一资源进行访问,同一时刻只能有一个线程能够获取到锁并进行资源访问, 其他的 每个线程都在等待 资源访问 的机会,并且遵循 先来后到 的顺序,这样的锁就叫做公平锁。 (2)非公平锁:如果针对上诉情况,后来的锁反而比先来的锁先获得 资源访问的权限,也就是其他线程获取资源的顺序是 随机 的,那么对于先来的锁就是不公平的,这样的锁就叫非公平锁。 公平锁表示线程获取锁的顺序是按照线程加锁的顺序来分配的,即先来先得的FIFO先进先出顺序。而非公平锁就是一种获取锁的抢占机制,是随机获得锁的,和公平锁不一样的就是先来的不一定先得到锁,这个方式可能造成某些线程一直拿不到锁,结果也就是不公平的了。利用 ReetrantLock类 我们可以创建 公平锁与非公平锁,只需要在创建的 ReetrantLock类的实例的时候,为构造函数传入true或者false。如果是true,则会创建一个ReetrantLock公平锁;如果是false,则会创建一个ReetrantLock非公平锁。ReetrantLock类不仅可以创建公平锁和非公平锁,它还是一把可重入锁,也是一把互斥锁,它具有与

Mxnet (32): 迁移学习(Fine-Tuning)进行热狗识别

浪子不回头ぞ 提交于 2020-10-04 09:51:50
总所周知,对于训练模型,一定是数据量越大准去率越高,同时越难以过拟合,泛化能力更强。一些模型训练的数据太少,当应用的时候输入的数据范围又太大,导致最终训练的模型的准确性可能无法满足实际需求。 为了解决上面的问题,一个方法就是获取更多的数据,但是获取数据是一个比较浪费金钱以及时间的事情。另一个方法就是通过迁移学习,将学习到的知识从源数据集迁移到目标数据集。比如,ImageNet中的图像大部分与椅子无关,但是在此数据集上训练的模型可以提取更通用的图像特征,这些特征可以帮助识别边缘,纹理,形状以及对象组成。这些特性可能对椅子同样有效。 本篇使用迁移学习中的一种常见技术:Fine-Tuning: 在源数据集上训练模型(源模型)。 创建一个新的模型,即目标模型。目标模型复制所有源模型中的结构以及参数。可以认为源模型参数中包含了从源数据集中学到的知识,并且将这些知识应用与目标数据集。 将满足目标数据集的输出层添加到目标模型上,并初始话输出层的参数。 使用目标数据在组装之后的模型上训练。从头开始训练输出层,而且它层的参数根据源模型参数进行微调。 Fine-Tuning实战:热狗识别 通过热狗识别的例子了解Fine-Tuning的用法。这里使用基于ImageNet数据集上训练的ResNet模型进行微调。这个热狗数据集包含千张图片,其中包含一些热狗的图片。通过微调而来的模型来识别图片中是否含有热狗。

【Keras】基于SegNet和U-Net的遥感图像语义分割

删除回忆录丶 提交于 2020-10-04 03:54:44
上两个月参加了个比赛,做的是对遥感高清图像做语义分割,美其名曰“天空之眼”。这两周数据挖掘课期末project我们组选的课题也是遥感图像的语义分割,所以刚好又把前段时间做的成果重新整理和加强了一下,故写了这篇文章,记录一下用深度学习做遥感图像语义分割的完整流程以及一些好的思路和技巧。 数据集 首先介绍一下数据,我们这次采用的数据集是CCF大数据比赛提供的数据(2015年中国南方某城市的高清遥感图像),这是一个小数据集,里面包含了5张带标注的大尺寸RGB遥感图像(尺寸范围从3000×3000到6000×6000),里面一共标注了4类物体,植被(标记1)、建筑(标记2)、水体(标记3)、道路(标记4)以及其他(标记0)。其中,耕地、林地、草地均归为植被类,为了更好地观察标注情况,我们将其中三幅训练图片可视化如下:蓝色-水体,黄色-房屋,绿色-植被,棕色-马路。更多数据介绍可以参看 这里 。 现在说一说我们的数据处理的步骤。我们现在拥有的是5张大尺寸的遥感图像,我们不能直接把这些图像送入网络进行训练,因为内存承受不了而且他们的尺寸也各不相同。因此,我们首先将他们做随机切割,即随机生成x,y坐标,然后抠出该坐标下256*256的小图,并做以下数据增强操作: 原图和label图都需要旋转:90度,180度,270度 原图和label图都需要做沿y轴的镜像操作 原图做模糊操作

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

半城伤御伤魂 提交于 2020-10-03 13:11: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:/

从软件开发到 AI 领域工程师:模型训练篇

孤街浪徒 提交于 2020-10-03 04:57:39
前言 4 月热播的韩剧《王国》,不知道大家有没有看?我一集不落地看完了。王子元子出生时,正逢宫内僵尸作乱,元子也被咬了一口,但是由于大脑神经元尚未形成,寄生虫无法控制神经元,所以医女在做了简单处理后,判断不会影响大脑。这里提到了人脑神经元,它也是 AI 神经网络的研究起源,具体展开讲讲。 人脑中总共有 860 亿个神经元,其中大脑皮层有 160 亿个神经元。大脑皮层的神经元数量决定了动物的智力水平,人的大脑皮层中神经元数量远高于其他物种,所以人类比其他物种更聪明。大象的脑子总共有 2570 亿个神经元,但是其中 98% 的神经元都存在于大象的小脑中,而大象的大脑皮层只有 56 亿个神经元,无法与人类相比。大脑皮层中的神经元数量越大,能耗也越大。人脑每天消耗的能量占人体全部耗能的 25%,这也就是为什么我们每天都要吃多餐,很容易饿的原因。人之所以能够很快超越其他物种,主要是因为人类掌握了烹饪技术,能够在短时间内摄入大量卡路里以支持大脑运转,其他物种则将摄入的卡路里用于维护身体运转,不得不牺牲大脑皮层的神经元数量。 之所以先谈大脑神经元原理,也是为了引出本文的重点–现代 AI 技术。 在正式进入 AI 技术前,我先讲讲软件工程师这份工作,因为现在有很多软件工程师准备转入 AI 行业。 软件工程师 我是软件工程师出身,2004 年刚毕业时我写的是 JSP 代码(一种将 Java

MindSpore!这款刚刚开源的深度学习框架我爱了!

时光毁灭记忆、已成空白 提交于 2020-10-03 01:53:29
【摘要】 本文主要通过两个实际应用案例:一是基于本地 Jupyter Notebook 的 MNIST 手写数据识别;二是基于华为云服务器的 CIFAR-10 图像分类,对开源框架 MindSpore 进行介绍。 犹记得今年的华为开发者大会 HDC 2020 上,一直受人瞩目的深度学习框架 MindSpore 终于开源了。 我之前一直关注 MindSpore,还是挺期待的。MindSpore 是一款支持端、边、云独立/协同的统一训练和推理框架。与 TensorFlow、PyTorch 等流行深度学习框架对标,MindSpore 旨在大幅度降低 AI 应用开发门槛,让人工智能无处不在。 MindSpore 最大的特点就是开发门槛大大降低,提高开发效率,这样可以显著减少模型开发时间。 因此,使用MindSpore的优势可以总结为以下四点: ●简单的开发体验 ●灵活的调试模式 ●充分发挥硬件潜能 ●全场景快速部署 既然开源了,那就赶紧上手,试一试这款开源的 MindSpore 怎么样!本文我将介绍 MindSpore 的安装和上手教程,通过一个简单的图像识别案例来跑完整个 AI 训练和测试流程。 一、MindSpore 的安装 开源框架 MindSpore 的安装方法有很多,可以在 Windows、Ubuntu 上安装,也可以在华为 Ascend 910 上安装

星际争霸2 AI开发

我与影子孤独终老i 提交于 2020-10-02 10:43:02
准备 我的环境是python3.6,sc2包0.11.1 机器学习包下载链接: pysc2 地图下载链接: maps 游戏下载链接: 国际服 国服 pysc2是DeepMind开发的星际争霸Ⅱ学习环境。 它是封装星际争霸Ⅱ机器学习API,同时也提供Python增强学习环境。 以神族为例编写代码,神族建筑科技图如下: 教程 采矿 # -*- encoding: utf-8 -*- ''' @File : __init__.py.py @Modify Time @Author @Desciption ------------ ------- ----------- 2019/11/3 12:32 Jonas None ''' import sc2 from sc2 import run_game, maps, Race, Difficulty from sc2.player import Bot, Computer class SentdeBot(sc2.BotAI): async def on_step(self, iteration: int): await self.distribute_workers() run_game(maps.get("AcidPlantLE"), [ Bot(Race.Protoss, SentdeBot()), Computer(Race

《Don't Stop Pretraining》

假装没事ソ 提交于 2020-10-02 08:26:27
题目:Don’t Stop Pretraining: Adapt Language Models to Domains and Tasks 来源:ACL 2020 原文链接: https://www. aclweb.org/anthology/20 20.acl-main.740.pdf Abstract 对各种来源的文本进行预训练的语言模型构成了当今NLP的基础。鉴于这些广泛覆盖的模型的成功,我们研究了将预训练的模型在目标任务的领域再次预训练是否仍然有帮助。我们提出了一项针对四个领域(生物医学和计算机科学出版物,新闻和评论)和八个分类任务的研究,表明在领域内进行再次进行预训练(领域自适应预训练)可提高性能。此外,在进行域自适应的预训练之后,在特定任务的未标记数据进行预训练(任务自适应的预训练)也可以提高性能。最后,我们证明,使用简单的数据选择策略进行数据增强是一种有效的选择,尤其是在没有用于领域自适应预训练的资源时。总体而言,我们发现,多阶段自适应预训练可大大提高模型性能。 1. Introduction 当今的预训练语言模型是在庞大的异构语料库上进行训练的。 例如,ROBERTA在160GB以上的非压缩文本进行训练,包括英语百科全书,新闻文章,文学作品和Web内容。 通过这些模型学习到的表示,在包含多种来源的各种大小的数据集的许多任务中实现出色的性能。 这让我们提出了一个问题