技术文章

使用AutoML Vision进行音频分类

荒凉一梦 提交于 2021-02-18 04:11:18
作者 | Vivek Amilkanthawar 来源 | Towards Data Science 编辑 | 代码医生团队 对于给定的音频数据集,可以使用 Spectrogram 进行音频分类吗? 尝试 使用 Google AutoML Vision 。 把音频文件转换成各自的频谱图,并使用频谱图作为分类问题的图像。 这是 频 谱图的正式定义 频谱图是信号频率随时间变化的直观表示。 在本次实验中,将使用 Kaggle 的音频数据集 如下 https://www.kaggle.com/c/freesound-audio-tagging/data 继续下载数据集 { 警告 !! :数据集超过 5GB ,因此在对数据集执行任何操作时需要耐心等待。对于实验,在 Google Can Platform ( GCP )上租了一台 Linux 虚拟机,将从那里执行所有 步骤 。此外需要一个 GCP 帐户才能学习本教程 } 步骤1:下载音频数据集 训练 数据( 4.1 GB ) curl https://zenodo.org/record/ 2552860 /files/FSDKaggle2018. audio_train.zip?download= 1 --output audio_train.zip upzip audio_train.zip 测试数据( 524 MB ) curl

Anchor-free 目标检测之 ExtremeNet

為{幸葍}努か 提交于 2021-02-18 04:11:00
点击 我爱计算机视觉 标星,更快获取CVML新技术 本 文转载自知乎用户“路一直都在”的OUCer&CVer专栏,原文地址: https://zhuanlan.zhihu.com/p/71249684 该文被CVPR 2019接收,作者来自 德克萨斯州大学奥斯汀分校 。 论文地址: https://arxiv.org/abs/1901.08043 开源代码: https://github.com/xingyizhou/ExtremeNet 1 Abstract 随着深度学习的发展,目标检测问题已经从一个 由下到上 的问题转变为一个 由上到下 的问题。(下文有详细介绍)当前最先进的目标检测算法首先枚举密集的目标可能存在的位置,然后对每一个位置分类判断是否存在目标,是前景还是背景。 在本文中,作者认为,从下到上的方法仍然能够取得很好的性能。利用关键点预测网络预测四个极值点(最顶部、最左侧、最底部、最右侧)和一个中心点共五个关键点。 如果五个关键点是 几何对齐 的,我们将它们分组到一个bounding box中,那么,目标检测问题就转化为一个纯的 关键点估计 问题,而不用进行分类或特征学习。实验表明,在COCO数据集上,AP有43.7%。 2 Introduction 利用从上到下的方法进行目标检测是当今的主流方法。常用的目标检测器将目标检测转变为矩形区域分类,通过裁剪

用solr的facet实现聚合标签

混江龙づ霸主 提交于 2021-02-18 04:10:15
Facet,单词意思是侧面,小平面。哈哈,怎么学英文单词了…… 好吧,言归正题,solr的Facet是一个什么东西呢?我个人理解,反映一个搜索词的小平面(或者说某一个分组),起到标签聚合统计的功能。举个列子说,像我们公司的 电商类网站 那样的对搜索结果聚合分类,品牌等属性。如下图 这个是搜索铁观音这个词,统计了 分类和品牌 2个侧面(分组),铁观音在生活分类下有64个,茗茶里面48…… 上面这个说到底,就是某一类型的标签统计,比如xxx年热词等等,只要有记录,也能统计出来,当然,超大数据量提前优化好solr的性能。 介绍了一下facet之后,来说说怎么实现facet。facet的实现其实很简单,主要在搜索参数上带上就OK。 facet=on/true #代表开启facet facet.field=cate #代表要统计的面(分组),比如上面的分类,品牌,可以多次出现 facet.limit =20 #每个分组最多返回条数 facet.mincount = 1 #这个表示分组下某一条目的最小数据量 facet.missing = on/true #统计null的值 facet.method = # 默认为fc, fc表示Field Cache 比如:http://localhost/product/select/?q=铁观音&facet=on&facet.field=category

Linux下ELF文件的格式(4) -> 符号

雨燕双飞 提交于 2021-02-18 04:09:55
【说明】本文章从本人的CSDN博客搬过来的,因个人感觉CSDN的博客系统太差,so,搬到这里。 这篇主要说明【符号】这一概念。 那么首先从链接开始说起,源文件到可执行文件一般经过4个步骤,预处理,编译,汇编,链接。作为最后一个阶段,链接到底干什么了? 其实前面也说到了,链接就是将多个目标文件,链接成可执行文件。这样就得考虑一件事,假如我在led.c里定义一个变量led1,而我们要在test.c里使用这个变量。 根据前面几篇我们可以知道,led.c和test.c在汇编这一步,会变成led.o和test.o,并且变量led1的运行地址是不存在的,通常为0 。 而程序运行起来,肯定位于真实的地址上【这里的真实也是虚拟地址】,那么就得靠链接器来确定这些变量的真实地址。 同样,我们的外部函数也是需要确定的,通常这些统称为符号。 每一个目标文件都有一个符号表,这个表中记录了目标文件用到的所有符号,每个符号都有一个对应的值,对于变量和函数来讲,这个值就是他们的地址。 除此之外,还有特殊的符号。总的来讲,分为以下几类: 1.定义在本目标文件中的全局符号,可以被其他模块引用。如:function1,main,global_init等 2.定义在其他文件,被本目标引用的符号,也叫外部符号,如:printf等 3.段名,这是由编译器产生的,如.text .data 等,它的值就是该段的起始地址。 4

CPU、io、mem之间的关系

纵饮孤独 提交于 2021-02-18 04:08:00
https://blog.csdn.net/weixin_38250126/article/details/83412749 https://blog.csdn.net/joeyon1985/article/details/46682939 https://blog.csdn.net/u013144287/article/details/60964012 一、名词解释 CPU:工人,干活的,判断以及逻辑处理 内存:车间,工人干活的地方,车间中加工原料,当车间中没有原料了,在从仓库中取原料,对原料进行加工 内存本身有一定的存储空间,对内存中的数据进行处理的速度比从硬盘取数据再处理的速度快很多 硬盘:仓库,原料,数据存储 二、三者关系 CPU对数据进行判断以及逻辑处理,本身不能存储数据,这时cpu从内存取数据进行逻辑计算,如果内存没有数据,才会从硬盘读数据到内存,再对数据进行处理 就像人吃饭一样,cpu就是人,内存就是碗,硬盘就是饭锅! 当cpu进程等待,会造成内存开销的增加,内存不够用的时候会用到虚拟内存,导致虚拟内存的增加,这时磁盘IO开销就会增加,系统态sy%提升,cpu开销增加;内存里数据不够用,才用磁盘中取数据。 三、性能高因素 1、系统CPU利用率高是什么原因? 系统中断和切换频繁很耗用CPU,共享资源竞争,大量io交互。CPU太差,主频太低,都是形容 CPU差。

为什么 Redis 要比 Memcached 更火?

混江龙づ霸主 提交于 2021-02-18 04:06:32
作者:Kaito 链接:kaito-kidd.com/2020/06/28/redis-vs-memcached/ 前言 我们都知道,Redis和Memcached都是内存数据库,它们的访问速度非常之快。但我们在开发过程中,这两个内存数据库,我们到底要如何选择呢?它们的优劣都有哪些? 为什么现在看Redis要比Memcached更火一些? 这篇文章,我们就从各个方面来对比这两个内存数据库的差异,方便你在使用时,做出最符合业务需要的选择。 要分析它们的区别,主要从以下几个方面对比: 线程模型 数据结构 淘汰策略 管道与 事务 持久化 高可用 集群化 线程模型 要说性能,必须要分析它们的服务模型。 Memcached处理请求采用多线程模型,并且基于IO多路复用技术,主线程接收到请求后,分发给子线程处理。 这样做好的好处是,当某个请求处理比较耗时,不会影响到其他请求的处理。 当然,缺点是CPU的多线程切换必然存在性能损耗,同时,多线程在访问共享资源时必然要加锁,也会在一定程度上降低性能。 Redis同样采用IO多路复用技术,但它处理请求采用是单线程模型,从接收请求到处理数据都在一个线程中完成。 这意味着使用Redis,一旦某个请求处理耗时比较长,那么整个Redis就会阻塞住,直到这个请求处理完成后返回,才能处理下一个请求,使用Redis时一定要避免复杂的耗时操作。 单线程的好处是

【爬虫】selenium动态页面请求与模拟登录知乎

懵懂的女人 提交于 2021-02-18 04:05:55
一。安装selenium pip install selenium 二。安装相应浏览器的Driver(selenium 文档) http://selenium-python.readthedocs.io/api.html 推荐使用Chrome 三。selenium的使用 1 # -*- coding: utf-8 -*- 2 3 from selenium import webdriver 4 from scrapy.selector import Selector 5 6 7 # 知乎的模拟登录 8 browser = webdriver.Chrome(executable_path= " E:/chromedriver.exe " ) # 路径是chromedriver.exe的存放的位置 9 browser.get( " https://www.zhihu.com/#signin " ) 10 browser.find_element_by_css_selector( " .view-signin input[name='account'] " ).send_keys( " ******** " ) # 帐号 11 browser.find_element_by_css_selector( " .view-signin input[name='password'] " )

ZOJ 3203 灯泡

混江龙づ霸主 提交于 2021-02-18 04:05:45
题面 相比 wildleopard 的家,他的弟弟 mildleopard 比较穷。他的房子是狭窄的而且在他的房间里面仅有一个灯泡。每天晚上,他徘徊在自己狭小的房子里,思考如何赚更多的钱。有一天,他发现他的影子的长度随着他在灯泡和墙壁之间走到时发生着变化。一个突然的想法出现在脑海里,他想知道他的影子的最大长度。 思路 首先,分治肯定是能够想到的,但是是二分还是三分呢,我们只需要思考一下就能知道,我们设地上影长为L1,墙上为L2,人走近时L1增加,L2减小,走远时L1减小,L2增加——这是个二次函数,所以一定使用三分法。 然后让我们来算L的长度,首先L1=D-X(X为人到左墙距离),L2=H-(H-h)*D/X(相似三角形)。 如果不理解可看下图 ,两个蓝的三角形为相似三角形,对应边的比值相同。 然后三分一下x的范围即可。 代码 1 (我都讲得这么详细了还需要代码?) 2 #include<bits/stdc++.h> 3 using namespace std; 4 double H,h,D,mid1,mid2; 5 int t; 6 double check( double x) 7 { 8 return D-x+H-(H-h)*D/ x; 9 } 10 int main() 11 { 12 cin>> t; 13 while (t-- ) 14 { 15 cin>>H>>h>>

Leetcode solution 1169: Invalid Transactions

|▌冷眼眸甩不掉的悲伤 提交于 2021-02-18 04:04:57
Problem Statement A transaction is possibly invalid if: the amount exceeds $1000, or; if it occurs within (and including) 60 minutes of another transaction with the same name in a different city. Each transaction string transactions[i] consists of comma separated values representing the name, time (in minutes), amount, and city of the transaction. Given a list of transactions , return a list of transactions that are possibly invalid. You may return the answer in any order. Example 1: Input: transactions = ["alice,20,800,mtv","alice,50,100,beijing"] Output: ["alice,20,800,mtv","alice,50,100