def

mmdetection源码解读(二)

五迷三道 提交于 2020-11-21 05:52:26
  一:关于Python修饰符@property和装饰器(decorator)等的解释和用法   二:mmdetection/mmdet/core/fp16/utils.py   from collections import abc   import numpy as np   import torch   def cast_tensor_type(inputs, src_type, dst_type):   if isinstance(inputs, torch.Tensor):   return inputs.to(dst_type)   elif isinstance(inputs, str):   return inputs   elif isinstance(inputs, np.ndarray):   return inputs   elif isinstance(inputs, abc.Mapping):   return type(inputs)({   k: cast_tensor_type(v, src_type, dst_type)   for k, v in inputs.items()   })   elif isinstance(inputs, abc.Iterable):   return type(inputs)(   cast_tensor

【Python3爬虫】网易云音乐歌单下载

╄→尐↘猪︶ㄣ 提交于 2020-11-21 05:44:37
一、目标:   下载网易云音乐热门歌单 二、用到的模块:   requests,multiprocessing,re。 三、步骤:    (1)页面分析:首先打开网易云音乐,选择热门歌单,可以看到以下歌单列表,然后打开开发者工具    因此我们需要请求的url就是https://music.163.com/discover/playlist,然后用requests.get()方法请求页面,对于返回的结果,用正则表达式进行解析,得到歌单名字和歌单id,解析的正则表达式如下: res = requests.get(url, headers=headers) data = re.findall('<a title="(.*?)" href="/playlist\?id=(\d+)" class="msk"></a>', res.text)      (2)得到歌单名字和歌单id后,构造歌单的url,然后模仿步骤(1)可以得到歌曲名字和歌曲id,解析的正则表达式如下: re.findall(r'<a href="/song\?id=(\d+)">(.*?)</a>', res.text)   再得到歌曲id后,构造歌曲的url,然后用requests.get().content方法下载歌曲,歌曲的url构造方法如下: "http://music.163.com/song/media

什么?你还没女朋友?教你如何借助Python俘获女孩子芳心!

风格不统一 提交于 2020-11-21 05:02:21
天气降温,感情却升温了? 上午刚到公司,就收到小Q发来的灵魂拷问: “Q仔!要不然下午请个假!我带你去精神科看看!?”我实在忍不了,脱口而出。 话音未落,前排的运营小花回头看向小Q,莞尔一笑,百媚横生。 这个闷骚小伙子什么时候勾搭上运营一枝花了?我正要追问,小Q看穿了我的意图,故作正经:“咳咳!工作了工作了!” 一大早喂我这么一碗狗粮还让我专心工作?你们以为不说我就没办法找到线索? 伟大的哲学家亚里士少德曾经说过“一段感情的开始,往往是通过朋友圈体现的”。我点开了小花的朋友圈,刷啊刷啊刷,终于在半个月前的一条朋友圈里发现了端倪。 小Q这个闷葫芦,竟然每天下班前发一封天气关心邮件来俘获芳心!脑回路真是奇清! 怪不得今天一上班就和我说Python像是个月老,牵着他们的情愫!因为这些用Python来实现并自动化,可以说是分分钟的事儿。我这个动手狂魔决定来复现一下,顺便搞搞事情。 整个过程只涉及到爬取天气和发送邮件,可以说一气呵成。 在敲代码的过程中,我意识到最难的部分,是想到把两者结合,并编辑土味关怀发送给目标用户了。毕竟都9102年了,虽然天气预报随手可看,但真正有几个人每天会关注呢? 要拿到天气的数据, www.tianqi.com 这个网址比较适合,所有数据都可以直接在源代码中拿到,天气小可爱长这个样子: 爬取只需简单伪装headers,就可以快乐的定位到所有想拿的数据了

Asis CTF 2016——b00ks

瘦欲@ 提交于 2020-11-21 04:29:44
这程序是一个图书管理系统   #off-by-one 程序逻辑 1 __int64 __fastcall main(__int64 a1, char **a2, char ** a3) 2 { 3 struct _IO_FILE *v3; // rdi 4 __int64 savedregs; // [rsp+20h] [rbp+0h] 5 6 setvbuf(stdout, 0LL, 2 , 0LL); 7 v3 = stdin; 8 setvbuf(stdin, 0LL, 1 , 0LL); 9 hello(); 10 input_name(); 11 while ( (unsigned int )sub_A89(v3) != 6 ) 12 { 13 switch ( (unsigned int )& savedregs ) 14 { 15 case 1u : 16 create(v3); 17 break ; 18 case 2u : 19 delete(v3); 20 break ; 21 case 3u : 22 edit(v3); 23 break ; 24 case 4u : 25 print(v3); 26 break ; 27 case 5u : 28 input_name(); 29 break ; 30 default : 31 v3 = ( struct

Python从入门到入土-异常处理try except

徘徊边缘 提交于 2020-11-21 04:27:40
异常处理try except 在Python中,异常处理,主要是try except语句,通常语法格式如下. try: 代码块1 except Exception as e: print(e) 代码2 try语句按照如下方式工作; 首先,执行try子句(在关键字try和关键字except之间的语句) 如果没有异常发生,忽略except子句,try子句执行后结束。 如果在执行try子句的过程中发生了异常,那么try子句余下的部分将被忽略。如果异常的类型和 except 之后的名称相符,那么对应的except子句将被执行。最后执行 try 语句之后的代码。 如果一个异常没有与任何的except匹配,那么这个异常将会传递给上层的try中。 一个 try 语句可能包含多个except子句,分别来处理不同的特定的异常。最多只有一个分支会被执行。 处理程序将只针对对应的try子句中的异常进行处理,而不是其他的 try 的处理程序中的异常。 我们来看个简单的例子 a=10 b=0 c=a/b print(c) print("done") 运行一下,结果如下: c=a/b ZeroDivisionError: division by zero 程序因为ZeroDivisionError 而中断了 ,语句print ("done" )并没有运行。为了处理异常,我们使用try...except : a

『计算机视觉』Mask-RCNN_推断网络其三:RPN锚框处理和Proposal生成

早过忘川 提交于 2020-11-21 03:54:48
一、RPN锚框信息生成 上文的最后,我们生成了用于计算锚框信息的特征(源代码在inference模式中不进行锚框生成,而是外部生成好feed进网络,training模式下在向前传播时直接生成锚框,不过实际上没什么区别,锚框生成的讲解见 『计算机视觉』Mask-RCNN_锚框生成 ):     rpn_feature_maps = [P2, P3, P4, P5, P6] 接下来,我们基于上述特征首先生成锚框的信息,包含每个锚框的 前景/背景得分信息 及每个锚框的 坐标修正信息 。 接前文主函数 ,我们初始化rpn model class的对象,并应用于各层特征: # Anchors if mode == "training": …… else: anchors = input_anchors # RPN Model, 返回的是keras的Module对象, 注意keras中的Module对象是可call的 rpn = build_rpn_model(config.RPN_ANCHOR_STRIDE, # 1 3 256 len(config.RPN_ANCHOR_RATIOS), config.TOP_DOWN_PYRAMID_SIZE) # Loop through pyramid layers layer_outputs = [] # list of lists for p

Python爬取南京市往年天气预报,使用pyecharts进行分析

北城余情 提交于 2020-11-21 03:31:44
上一次分享了使用matplotlib对爬取的豆瓣书籍排行榜进行分析,但是发现python本身自带的这个绘图分析库还是有一些局限,绘图不够美观等,在网上搜索了一波,发现现在有很多的支持python的绘图库可以使用,本次尝试使用pyecharts对爬取的数据进行分析,然后发现这个库实在是太好用了,生成的库也很好看,还能生成动态图,简直是进行数据分析的一大神器! pyecharts: pyecharts 是一个封装百度开源图表库echarts的包,使用 pyecharts 可以生成独立的网页,也可以在flask、django中集成使用。 本次爬取的首页地址是: http://www.tianqihoubao.com/lishi/nanjing.html 爬取步骤: 爬取主网页,获取进入每个南京市具体年份月份的天气数据的链接 爬取上方获取的具体链接的数据 存储数据 对数据进行筛选后使用pyecharts进行分析 话不多说,马上开始吧! 步骤一 从上图可知,我们需要先获取进入每个具体月份的链接,才能爬取想要的数据,所以首先定义获取具体链接的函数,然后在爬取会方便很多;查看网页源代码查找目标所在位置,本次我依然是使用lxml库来进行数据的爬取(PS:感觉习惯了lxml其他库就不好用了),这里需要注意的是,我是将获得的结果一个一个的存入列表,这种方法很笨,但作为菜鸟的我确实不知道其他方法了

『计算机视觉』Mask-RCNN_推断网络其四:FPN和ROIAlign的耦合

旧城冷巷雨未停 提交于 2020-11-21 03:27:16
一、模块概述 上节的最后,我们进行了如下操作获取了有限的proposal, # [IMAGES_PER_GPU, num_rois, (y1, x1, y2, x2)] # IMAGES_PER_GPU取代了batch,之后说的batch都是IMAGES_PER_GPU rpn_rois = ProposalLayer( proposal_count=proposal_count, nms_threshold=config.RPN_NMS_THRESHOLD, # 0.7 name="ROI", config=config)([rpn_class, rpn_bbox, anchors]) 总结一下: 与 GT 的 IOU 大于0.7 与某一个 GT 的 IOU 最大的那个 anchor 进一步,我们需要按照RCNN的思路,使用proposal对共享特征进行ROI操作,在Mask-RCNN中这里有两个创新: ROI使用ROI Align取代了之前的ROI Pooling 共享特征由之前的单层变换为了FPN得到的金字塔多层特征,即: mrcnn_feature_maps = [P2, P3, P4, P5] 其中创新点2意味着我们不同的proposal对应去ROI的特征层并不相同,所以,我们需要: 按照proposal的长宽,将不同的proposal对应给不同的特征层

Python爬虫入门教程: All IT eBooks多线程爬取

此生再无相见时 提交于 2020-11-21 03:15:20
All IT eBooks多线程爬取-写在前面 对一个爬虫爱好者来说,或多或少都有这么一点点的 收集癖 ~ 发现好的图片,发现好的书籍,发现各种能存放在电脑上的东西,都喜欢把它批量的爬取下来。 然后放着,是的,就这么放着.......然后慢慢的遗忘掉..... All IT eBooks多线程爬取-爬虫分析 打开网址 http://www.allitebooks.com/ 发现特别清晰的小页面,一看就好爬 在点击一本图书进入,发现下载的小链接也很明显的展示在了我们面前,小激动一把,这么清晰无广告的网站不多见了。 All IT eBooks多线程爬取-撸代码 这次我采用了一个新的模块 requests-html 这个模块的作者之前开发了一款 requests ,你应该非常熟悉了,线程控制采用的 queue 安装 requests-html 模块 pip install requests-html 关于这个模块的使用,你只需要使用搜索引擎搜索一下这个模块名称,那文章也是很多滴,作为能学到这篇博客的你来说,是很简单的拉~ 我们编写一下核心的内容 from requests_html import HTMLSession from queue import Queue import requests import random import threading CARWL_EXIT =

Scala 语法基础

二次信任 提交于 2020-11-21 02:23:13
一 简介 Scala 是一门多范式(multi-paradigm)的编程语言,设计初衷是要集成面向对象编程和函数式编程的各种特性。Scala 运行在Java虚拟机上,并兼容现有的Java程序。Scala 源代码被编译成Java字节码,所以它可以运行于JVM之上,并可以调用现有的Java类库。 二 安装与环境配置 Scala 语言可以运行在Window、Linux、Unix、 Mac OS X等系统上。Scala是基于java之上,大量使用java的类库和变量,使用 Scala 之前必须先安装 Java(>1.5版本)。 1 Java 安装设置( Linux 上安装 jdk ) 确保你本地以及安装了 JDK 1.5 以上版本,并且设置了 JAVA_HOME 环境变量及 JDK 的bin目录,scala2.11支持jdk1.8以上。 我们可以使用以下命令查看是否安装了 Java:java-version java version "1.8.0_171" Java(TM) SE Runtime Environment (build 1.8.0_171- b11) Java HotSpot(TM) 64-Bit Server VM (build 25.171-b11, mixed mode) 接着,我们可以查看是否安装了 Java 编译器。输入以下命令查看: $ javac -