pytorch

简历v岗位实时智能匹配算法

a 夏天 提交于 2020-12-25 04:52:54
向AI转型的程序员都关注了这个号 👇👇👇 机器学习AI算法工程 公众号:datayx 人岗智能匹配 根据智联招聘抽样的经过脱敏的求职者标签数据、职位信息、及部分求职者行为信息、用人单位反馈信息,训练排序模型,对求职者的职位候选集进行排序,尽可能使得双端都满意的职位(求职者满意以及用人单位满意)优先推荐。本次比赛里,假定对于曝光给求职者的职位候选集里,假如求职者感兴趣会产生浏览职位行为,浏览职位后,如果求职者满意会产生主动投递行为。用人单位收到求职者主动投递的简历后会给出是否满意的反馈信号。 项目代码 获取方式: 关注微信公众号 datayx 然后回复 人岗匹配 即可获取。 AI项目体验地址 https://loveai.tech 评估标准 a) 测试数据由n组曝光职位数据集合组成,每组数据包含一个求职者以及一序列曝光候选职位。参赛者需要对每组职位进行预测并排序给出排序后的职位序列。对n组排序后的职位序列,比赛采用以下计算方式作为评估指标。通过计算所有n组排序后的职位序列里,求职者投递(delivered)职位的MAP值以及用人单位中意(satisfied)职位的MAP(Mean Average Precision),由最终的加权评价值 提供的训练数据包含三张表,分别是简历描述表 table1_user: 薪资表: 期望薪资是10位或者12位(遇到9位或者11位前面或者后面补0

Detectron2(AdelaiDet)加载COCO格式自定义数据集

喜欢而已 提交于 2020-12-24 09:20:51
测试环境: OS: Win10 CUDA: 11.0 pytorch: 1.7.1 GPU: 3060Ti python:3.8 Detectron: 0.3(笔者可以在win环境成功编译安装detectron2 Detectron2模型数量虽然比mmdetection少,不过有些论文还是用Detectron2做的,因此有必要了解一下如何用Detectron2训练自定义数据集。 关于mmdetection下训练coco格式的自定义数据请移步笔者另一篇博文: mmdetection-v2.3安装配置及训练自定义数据集 以笔者目前的经验来看,要想对自己领域内的图像做目标检测任务,最好的方法是制作成COCO格式数据集,个人习惯用labelimg先制作成voc格式,然后用脚本转换为coco格式,转换脚本可见笔者的github库: https://github.com/ouening/OD_dataset_conversion_scripts 。制作成COCO格式的好处是目前大部分OD框架都支持该数据格式,直接调用API或者简单修改就可以用,当然VOC格式也是基本都支持的,但是COCO在指标评价上更加丰富,VOC只有传统的mAP,COCO指标有AP,AP0.5,AP0.75,APs,APm,APl,AR1,AR10,AR100等。 下面以AdelaiDet(基于Detectron2

What does model.eval() do in pytorch?

孤街醉人 提交于 2020-12-24 04:00:07
问题 I am using this code, and saw model.eval() in some cases. I understand it is supposed to allow me to "evaluate my model", but I don't understand when I should and shouldn't use it, or how to turn if off. I would like to run the above code to train the network, and also be able to run validation every epoch. I wasn't able to do it still. 回答1: model.eval() is a kind of switch for some specific layers/parts of the model that behave differently during training and inference (evaluating) time. For

深度学习的一些经验总结和建议| To do v.s Not To Do

女生的网名这么多〃 提交于 2020-12-23 04:22:11
每天进步一点点,关注&置顶“ 我爱计算机视觉 ” CV君:本文作者为百度 PaddlePaddle 组技术布道师Charlotte77,内容全是实战经验的精炼总结,强烈推荐大家收藏。 除了列出来的内容,各位读者有什么独门秘籍也欢迎文末留言分享!截止到明晚23点(7月22日),留言被点赞最多的深度学习绝招,联系CV君(文末扫码)发50元红包! 昨天看到几篇不同的文章写关于机器学习的to do & not to do,有些观点赞同,有些不赞同,是现在算法岗位这么热门,已经不像几年前一样,可能跑过一些项目、懂点原理就可以了,现在对大家的要求更高,尤其工程能力更不可缺少,只跑过一些iris鸢尾花分类、啤酒与尿布、猫狗分类等的同学需要再提高提高,因为竞争太激烈了, 我在这里结合我自己的经验 总结一下 吧~ To Do 做项目时,边搜集数据可以边用已经搜集好的 少部分数据跑模型 。不用等到所有数据都搜集好了再跑。 不知道什么算法合适,可以直接把所有的算法都跑一遍,看效果再选择,多跑几个应用场景你就知道什么算法适合什么场景,什么数据对不同的算法会有什么影响了。 不知道什么参数是最佳参数,可以用random search或者grid search自动搜索最佳参数组合,有经验以后对于每个参数的大概范围心里会有个数。 一定要练习工程能力,只会调参的demo侠现在很难找到工作啦。 模型复现和刷题

torchtext的使用方法

半腔热情 提交于 2020-12-19 12:26:26
torchtext包含以下组件 Field :主要包含以下数据预处理的配置信息,比如指定分词方法,是否转成小写,起始字符,结束字符,补全字符以及词典等等 Dataset :继承自pytorch的Dataset,用于加载数据,提供了TabularDataset可以指点路径,格式,Field信息就可以方便的完成数据加载。同时torchtext还提供预先构建的常用数据集的Dataset对象,可以直接加载使用,splits方法可以同时加载训练集,验证集和测试集。 Iterator : 主要是数据输出的模型的迭代器,可以支持batch定制。 Field Field 包含一写文本处理的通用参数的设置,同时还包含一个词典对象,可以把文本数据表示成数字类型,进而可以把文本表示成需要的tensor类型 以下是Field对象包含的参数: sequential: 是否把数据表示成序列,如果是False, 不能使用分词 默认值: True. use_vocab: 是否使用词典对象. 如果是False 数据的类型必须已经是数值类型. 默认值: True. init_token: 每一条数据的起始字符 默认值: None. eos_token: 每条数据的结尾字符 默认值: None. fix_length: 修改每条数据的长度为该值,不够的用pad_token补全. 默认值: None. tensor

aspp

喜你入骨 提交于 2020-12-18 14:05:34
用法:pc上20ms aspp = ASPP(320, [3, 6, 9]) input = torch.randn(2, 320, 10, 10) # torch.onnx.export(pelee_net, input, "pelee_net.onnx", verbose=True) for i in range(10): start=time.time() # x, *shortcuts = net(input) # print(time.time()-start,x.shape) start = time.time() x=aspp(input) print(2,time.time() - start, x.shape) from torch.nn import functional as F class ASPPPooling(nn.Sequential): def __init__(self, in_channels, out_channels): super(ASPPPooling, self).__init__( nn.AdaptiveAvgPool2d(1), nn.Conv2d(in_channels, out_channels, 1, bias=False), nn.BatchNorm2d(out_channels), nn.ReLU()) def

论文阅读笔记---HetConv

对着背影说爱祢 提交于 2020-12-18 03:43:03
1 写在前边的话 HetConv性能:当使用HetConv取代标准卷积之后,FLOPs大概是之前的1/8到1/3,更重要的是精度几乎不变!!! 论文地址: https://arxiv.org/abs/1903.04120 2 HetConv的结构 实质:是分组卷积与逐点卷积结合的产物。具体如下: <center><img src="https://img2018.cnblogs.com/blog/1414369/201909/1414369-20190905193927922-2033241196.jpg" width="440" align=center /></center> 对于卷积(标准卷积;深度卷积;分组卷积;逐点卷积)来讲,每一个filter的尺寸是完全一样的,文章中也称之为同构卷积。 所谓异构卷积,也就是说,对于同一个filter来讲,它的尺寸是不一样的,文章中是有两种。 这样讲可能有点抽象,举个例子来体会一下: 假设原有的一个fliter为:3x3xM,HetConv将M中M/P的3x3卷积核尺寸保留,剩余的M-M/P卷积核尺寸变为1x1的,其中P是一个比例系数。 上边讲的只是一个filter,现假设输出的通道数为N,HetConv是这样做的,假设第一个通道第一个3x3为在第一个位置开始,那么第二个通道中第一个3x3在第二个位置开始,以此类推,如下图所示:

Pytorch: list, numpy. Tensor 格式转化 (附 only one element tensors can be converted to Python scalars 解决)

蓝咒 提交于 2020-12-16 13:55:49
Pytorch :list, numpy.array, torch.Tensor 格式相互转化 同时解决 ValueError:only one element tensors can be converted to Python scalars 问题 torch.Tensor 转 numpy ndarray = tensor.numpy() 如果是在 gpu,命令如下 ndarray = tensor.cpu().numpy() # 这是因为 gpu上的 tensor 不能直接转为 numpy numpy 转 torch.Tensor tensor = torch.from_numpy(ndarray) list 转 torch.Tensor tensor=torch.Tensor(list) 注意:有时,上面操作会出现报错: ValueError:only one element tensors can be converted to Python scalars 原因是:要转换的list里面的元素包含多维的tensor。 在 gpu 上的解决方法是: val= torch.tensor([item.cpu().detach().numpy() for item in val]).cuda() # 这是因为 gpu上的 tensor 不能直接转为 numpy; 需要先在 cpu

pytorch中的torch.nn.Unfold和torch.nn.Fold

送分小仙女□ 提交于 2020-12-16 13:46:15
1. torch.nn.Unfold(kernel_size, dilation=1, padding=0, stride=1) torch.nn.Unfold按照官方的说法,既从一个batch的样本中,提取出滑动的局部区域块,也就是卷积操作中的提取kernel filter对应的滑动窗口。 1)由上可知,torch.nn.Unfold的参数跟nn.Conv2d的参数很相似,即,kernel_size(卷积核的尺寸),dilation(空洞大小),padding(填充大小)和stride(步长)。 2)官方解释中:unfold的输入为( N, C, H, W),其中N为batch_size,C是channel个数,H和W分别是channel的长宽。则unfold的输出为( N, C × π ( k e r n e l _ s i z e ) C\times\pi (kernel\_size) C × π ( k e r n e l _ s i z e ) , L),其中 π ( k e r n e l _ s i z e ) \pi (kernel \_size) π ( k e r n e l _ s i z e ) 为kernel_size长和宽的乘积, L是channel的长宽根据kernel_size的长宽滑动裁剪后,得到的区块的数量。 3)例如:输入(1, 2, 4, 4

unexpected EOF, expected 455433 more bytes. The file might be corrupted.解决方案

落爺英雄遲暮 提交于 2020-12-16 04:25:26
unexpected EOF, expected 455433 more bytes. The file might be corrupted.不完美解决方案 在下载pytorch的预训练模型权重的时候,如果网络不稳定导致权重下载到一半中断,这时候如果我们不把损坏的权重文件删除,就会报unexpected EOF, expected xxxxxx more bytes. The file might be corrupted。 常规解决步骤: 找到权重文件,将权重文件删除 重新下载 我在网上查到的解决方案基本都围绕上面两个步骤,然而我找不到pytorch的权重文件!网上说一般在路径 \home\用户名\.cache\torch 中,然而我打开.cache文件夹是这样的 这里要注意一下,.cache是个隐藏文件夹,在winSCP中按 ctrl+Alt+H 才会显示。 最终解决方案 1. 在torch.hub.load_state_dict_from_url中指定权重保存路径。 一般我们下载pytorch的预训练权重都是用torch文件夹中,hub.py文件里的 load_state_dict_from_url(url, model_dir=None, map_location=None, progress=True, check_hash=False) 函数,查看函数定义我们发现