自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

pywin

学无止境。。。

原创 【2020最新】解决Github连接、图片显示失败的问题

建议修改hosts文件,本人使用的是windows系统,使用EditPlus或sublime text都可以打开。hosts文件位置:C:\Windows\System32\drivers\etc\hosts在hosts文件末尾添加:# GitHub Start 140.82.113.3 github.com140.82.114.20 gist.github.com151.101.184.133 assets-cdn.github.com151.101.184.

2020-06-04 11:30:01 1201 2

原创 Deep Multi-task Learning for Facial Expression Recognition 阅读笔记

分享一篇《Deep Multi-task Learning for Facial Expression Recognition and Synthesis Based on Selective Feature Sharing》,作者提出了一种带有卷积特征泄露单元的多任务网络结构,可以在面部表情识别任务和面部表情合成任务之间通过ConvFLU过滤掉无用和导致损害的特征的方式有选择地传递有益特征。并且使用面部表情合成分支来扩大和平衡训练数据集来提升网络的泛化能力。实验表明所提出的多任务网络在人脸表情图像的识别与

2020-08-05 10:58:06 8

原创 pytorch 去除pretrain model 最后一层或某一层

官方的pretrain model去除指定层可以参考链接https://blog.csdn.net/KHFlash/article/details/82345441,这里主要针对非官方的pretrain model,如下:import torchfrom collections import OrderedDictimport osimport torch.nn as nnimport torch.nn.init as initfrom xxx import new_VGGdef ini

2020-08-04 18:12:28 24

原创 python 保存argparse中的配置参数

保存argparse配置参数重要的一步是将parser.parse_args()转换为字典,再输出key,value进行保存。示例如下:import argparseparser = argparse.ArgumentParser(description='test')parser.add_argument('--gpu_id', default=1, type=int)parser.add_argument('--size', default=32, type=int)parser.add

2020-07-31 10:27:19 36

原创 FERSNet 阅读笔记

论文地址:https://arxiv.org/abs/2007.04514分享一篇《Deep Multi-task Learning for Facial Expression Recognition and Synthesis Based on Selective Feature Sharing》,作者提出了一种带有卷积特征泄露单元的多任务网络结构,可以在面部表情识别任务和面部表情合成任务之间通过ConvFLU过滤掉无用和导致损害的特征的方式有选择地传递有益特征。并且使用面部表情合成分支来扩大和平衡训

2020-07-14 17:28:20 40

原创 python list等分,并从等分的子集中随机选取一个数

有些时候我们需要从视频序列中均匀的随机采样,我们可以每隔x步进行一次采样,这就要求对一个list每隔x步进行一次截取,再从截取到的不同的子集中随机选取一个数就是我们平均采样的帧的idx。import randomdef split(a, n): k, m = divmod(len(a), n) return [a[i * k + min(i, m):(i + 1) * k + min(i + 1, m)] for i in list(range(n))]list_split =

2020-07-13 10:56:28 94

原创 《Maximum Roaming Multi-Task Learning》阅读笔记

占坑

2020-07-02 09:43:14 44

原创 python 根据图片名称中的数字排序

import redef sort_key(s): #获取图片名称 tail = s.split('\\')[-1] # 匹配开头数字序号 c = re.findall('\d+', tail)[0] return int(c)def strsort(alist): alist.sort(key=sort_key) return alistimgs = strsort(['aa\\dghj_15.jpg','aa\\adj_105.jpg'.

2020-06-17 11:36:22 170

原创 python opencv BGR2RGB转换原理

opencv bgr2rgb转换其实就是在Channel维度B通道和R通道互换:import numpy as npimg = np.arange(12).reshape((2,2,3))print(img)结果:[[[ 0 1 2] [ 3 4 5]] [[ 6 7 8] [ 9 10 11]]]img_ = img[:,:,::-1]print(img_)结果:[[[ 2 1 0] [ 5 4 3]] [[ 8 7 6] [1.

2020-06-17 11:29:26 146

原创 python 判断一个数组所有值都在一个范围内

判断一个数组np.array([12,15,20])中所有的值是否都在(10,20)范围内import numpy as npar = np.array([12,15,20])print('original array: {}'.format(ar))if ((10<ar) & (ar<25)).all(): ar = np.array([25,25,25])print('new array: {}'.format(ar))结果:origin.

2020-06-17 11:14:46 735

转载 train loss与test loss结果分析/loss不下降

train loss与test loss结果分析train loss 不断下降,test loss不断下降,说明网络仍在学习;train loss 不断下降,test loss趋于不变,说明网络过拟合;train loss 趋于不变,test loss不断下降,说明数据集100%有问题;train loss 趋于不变,test loss趋于不变,说明学习遇到瓶颈,需要减小学习率或批量数目;train loss 不断上升,test loss不断上升,说明网络结构设计不当,训练超参数设置不当,数据集经

2020-06-10 10:25:47 151

原创 pytorch 多gpu并行训练

单机多卡并行训练torch.nn.DataParallel我一般在使用多GPU的时候, 会喜欢使用os.environ['CUDA_VISIBLE_DEVICES']来限制使用的GPU个数, 例如我要使用第0和第3编号的GPU, 那么只需要在程序中设置:os.environ['CUDA_VISIBLE_DEVICES'] = '0,3'这个参数最好在主体代码开始的时候写上,因为它要写在model调用cuda函数前使用。例如我们需要训练的文件为train.py,也是用‘0,3’号gpu,

2020-06-10 09:32:12 147

原创 【简单理解】torch.nonzero(同样适用于获取tensor中某一元素的索引)

torch.nonzero其实就是找出tensor中非零的元素的索引import torchlabel = torch.tensor([[1,0,0], [1,0,1]])print(label.nonzero())返回的结果:tensor([[0, 0], [1, 0], [1, 2]])返回的结果就是非零元素的索引,其中[0,0]对应了第一行第一列的1,[1,0]对应了第二行第一列的1,[1,2]对应了第

2020-06-09 15:21:57 447

原创 【2020更新】python 获取数据集的means和stdevs(均值、方差)

import numpy as npfrom tqdm import tqdmfrom glob import globimport cv2import randomimport osmeans = [0, 0, 0]stdevs = [0, 0, 0]index = 1num_imgs = 0imgslist = glob('/users/xxx/xxx/*.jpg')for imgpath in tqdm(imgslist): num_imgs += 1 im.

2020-06-09 12:07:04 73

原创 pytorch多gpu出现RuntimeError

记录一下使用多gpu出现的报错。在一开始的时候,使用的是单gpu能够正常训练和验证,但使用多gpu的时候就会报RuntimeError: shape '[xxx,xxx]' is invalid for input of size xxx错误,查找了一下原因并不是网络结构间的输入输出的shape不对应,而是train和val的batchsize应该都是gpu数量的整数倍。...

2020-06-08 14:56:14 153

原创 【超简单】torch.narrow()函数

官方例子:torch.narrow(input,dim,start,length)→ TensorReturns a new tensor that is anarrowed version ofinputtensor. The dimensiondimis input fromstarttostart+length. The returned tensor andinputtensor share the same underlying storage.函数返回t...

2020-06-04 17:03:03 65

原创 Video retrieval based on deep convolutional neural network 论文阅读

《Video retrieval based on deep convolutional neural network》论文中采用CNN提取高级语义特征,输入的三个视频共享一个cnn参数,经过cnn得到三个视频各自的特征([batch,16,Nd]),根据我的理解,FC1的上一层是各视频特征的压缩,由[batch,16,Nd]压缩到了[batch,16*Nd]。此时的特征再经过一个FC1层,输出的特征的维度由[batch,16*Nd]转化为[batch,bits],bits就是hash的bi...

2020-06-03 10:55:26 71

原创 pytorch GlobalAveragePolling(GAP)

GAP是对每一个通道的像素求平均,假如现在的特征图的shape为[B,C,H,W],经过GAP后shape变为[B,C,1,1]a = torch.rand([2,3,2,2])b = torch.nn.functional.adaptive_avg_pool2d(a, (1,1))print(a)print('='*20)print(b.shape)print('='*20)print(b)输出:tensor([[[[0.5518, 0.6697], [0

2020-05-28 11:30:30 239

转载 pytorch预训练模型的下载地址

Resnet:model_urls = { 'resnet18': 'https://download.pytorch.org/models/resnet18-5c106cde.pth', 'resnet34': 'https://download.pytorch.org/models/resnet34-333f7ec4.pth', 'resnet50': 'https://download.pytorch.org/models/resnet50-19c8e357.pth',.

2020-05-27 17:41:27 186

原创 pip 使用清华源安装python包

常用的清华源:https://pypi.tuna.tsinghua.edu.cn/simple使用pip配合清华源安装方式:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple xxxxxx代表需要安装的包

2020-05-27 10:10:43 198

原创 mtcnn 返回值分析

在align_data()函数中调用,detect_face.detect_face()函数,返回bounding_boxes, points,bounding_boxes 就是返回的人脸框,points就是返回的关键点。mtcnn返回5个关键点,分别是左眼,右眼,鼻子,左嘴角,右嘴角。bounding_boxes是一个n*5的数组,n表示检测到的人脸数目,每一行5个元素是一个行数组,表示一个人脸框信息。bb = bounding_boxes[0]表示第一个人脸框信息,bb[0]表示人脸框的左上角的水平方向

2020-05-27 10:07:29 125

原创 python opencv 按时间段保存视频中的图片

记录一下使用opencv保存MP4视频中想要时间段的图片,主要思路是使用VideoCapture().get(5)函数获取FPS,输入起始时间和结束时间,开始的帧是startTime * FPS,结束的帧是endTime * FPS,需要截取的帧在这个范围内,初始化一个计数器,简单的说就是c=0,读取MP4是从头开始读的,每读取一帧c+1,如果c在startTime * FPS到endTime * FPS的范围中就对帧进行保存。当然你还可以设置保存帧的间隔。下面是对应的程序,环境python3,opencv

2020-05-27 10:02:28 193

原创 pytorch one_hot

one_hot = torch.nn.functional.one_hot(torch.arange(3), num_classes=5)print--->tensor([[1, 0, 0, 0, 0], [0, 1, 0, 0, 0], [0, 0, 1, 0, 0]])one_hot = torch.nn.functional.one_hot(torch.LongTensor([1,3,4]), num_classes.

2020-05-27 09:42:34 55

原创 根据多个索引删除list中的元素

l=['c','s','d','n','n','e','t']index = [0,3,1]#先排序,再反转index。从大到小删不会错位for i in sorted(index, reverse=True): del l[i]print(l)

2020-05-19 09:25:06 283

原创 python导入自己的模块(亲测有效)

主要针对导入模块和代码不在同一目录的情况。在代码头部添加,例如要添加的模块所在目录为/users/xx/xx/datas:import syssys.path.append(r'/users/xx/xx/datas')import datas添加完上面的代码,在datas目录中创建一个__init__.py的文件vi __init__.py在__init__.py中导入添加的模块,例如要添加的模块是handle.pyfrom handle import *写完保存.

2020-05-12 10:07:11 93

原创 mxnet SigmoidBinaryCrossEntropy代码分析

主要对下面这段代码进行一下详细的分析吧# We use the stable formula: max(x, 0) - x * z + log(1 + exp(-abs(x))) loss = F.relu(pred) - pred * label + F.Activation(-F.abs(pred), act_type='softrelu')可能有会疑惑,这不像是交叉熵的公式。这个...

2019-12-27 14:56:19 159

原创 numpy不使用省略号和科学计数法表示

使用numpy时有时输出矩阵维度过大的时候显示时就会使用省略号代替中间结果,如果我们想要看到中间的结果可以使用以下代码:import numpy as np# 不使用省略号表示np.set_printoptions(threshold = np.inf)# 不使用科学计数显示:np.set_printoptions(suppress = True)...

2019-12-16 11:49:29 157

原创 头动识别数据集

Biwi Kinect Head Pose 头部姿势数据BiwiKinectHeadPoseDatabase 是一个人头部姿势图像数据集,包含 15000 多张,20个不同人的头部姿势的图像。https://data.vision.ee.ethz.ch/cvl/gfanelli/head_pose/head_forest.html#dbhttps://data.vision.ee.e...

2019-12-10 10:12:32 143

原创 mxnet制作.lst和.rec文件

mxnet读数据的其中一种方式就是读取.rec文件,实际上.rec文件的制作流程并不复杂,分为两个步骤:1.制作.lst文件,这里是一种灵活度比较高的方法 上图是一个简单的lst文件,第一列是index列,第二列是标签列,第三列是图片目录列,中间的空隙是制表符'\t'。其中标签列可能是多标签也可能是一个标签,在制作rec文件的时候会略有不同,图片的目录列我认为最好是写一个比...

2019-12-09 17:53:24 231 2

原创 mxnet如何只训练指定层,其他层参数固定不变?

比如说只更新最后一个dense层的权重:Trainer里面用下面这个而不是所有的model.collect_params()model.collect_params(select='.*dense0')如果想设置为只有dense0层不更新model.collect_params('.*dense0').setattr('grad_req','null')我也是刚了解到这个操作,...

2019-12-09 11:45:26 229

转载 头部姿态估计:《Fine-Grained Head Pose Estimation Without Keypoints》

《Fine-Grained Head Pose Estimation Without Keypoints》2018,Nataniel Ruiz Eunji Chong James M. Rehg. multi-loss代码链接:https://github.com/natanielruiz/deep-head-pose1.引言:本文提出了一种简洁和鲁棒的方式来确定姿态,通过训练一个mult...

2019-11-18 16:39:41 257

原创 linux 安装GPU版本的mxnet

1.先查看自己cuda的版本:cat /usr/local/cuda/version.txt2.建议先卸载之前安装的mxnetpip uninstall mxnetpip uninstall mxnet-cu903.例如cuda的版本是9.0的pip install -i https://pypi.tuna.tsinghua.edu.cn/simple mxnet-cu...

2019-11-18 16:13:12 388

原创 微表情数据集汇总(全)

最近一段时间收集了一些微表情的数据集,主要有两个目的,一是做一个汇总,二是为了正在找相关数据集的同学提供一个方便。如果你有文中未提到的数据集可以在下面留言附上链接,万分感谢~CK+:http://www.pitt.edu/~emotion/ck-spread.htmMMI:https://mmifacedb.eu/FER-2013:https://www.kaggle.com/c/chal...

2019-11-12 10:15:31 1539 6

原创 github删除项目中的文件夹

github中的文件夹不能直接在网页中删除,这时候需要用到MINGW64去操作管理github中的项目,具体怎么安装MINGW64这里就不多做说明。我是第一次操作,但是也成功了。先把自己的项目clone下来,我是放在了桌面,进入目录后右键点击Git Bash Here,就可以在命令框中输入指令了。git rm -r /xxx/xxx/targetfile(需要删除的目录名称) ...

2019-08-07 12:14:09 312

原创 linux下在文件夹中显示前n个文件的名称

有时候在文件下会有几百万个文件,可能是图像文件也可能是文本文件等,如果直接用ls命令去查看会出现卡死的情况,但为了查看文件夹下的文件的情况可以查看前n个文件,这样可以避免卡死的情况发生,也节省了不少的搜索时间。假如需要查看前100个文件的名称:cd /"你要查看的文件目录"ls |head -n 100就这么简洁~...

2019-08-07 11:56:35 2226

转载 Linux下的tar压缩解压缩命令详解

tar-c: 建立压缩档案-x:解压-t:查看内容-r:向压缩归档文件末尾追加文件-u:更新原压缩包中的文件这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的。-z:有gzip属性的-j:有bz2属性的-Z:有compress属性的-v:显示所有过程-O:将文件解开到标准输出下面的参数-f是必...

2018-07-18 23:47:12 100

原创 ubuntu16.04服务器下安装cuda9.0+cudnn7.0+tensorflow1.6.0+Anaconda3

我将所需要的包全部放在了云盘,不需要再去繁琐的寻找下载了。(建议用文中给的百度云连接下载所需文件,以免出现NVIDIA驱动、cuda、cudnn、tensorflow版本不匹配引起的各种BUG)文中给出了所有包的地址和密码,废话不多说,开始吧!1.Anaconda3安装可从云盘中下载,地址链接: https://pan.baidu.com/s/1-69xqCiDec-lat_KarO8Vw...

2018-07-17 21:43:13 1399 2

原创 tensorflow中去除不足一个batch的数据

#-*- coding:utf-8 -*-import tensorflow as tfimport numpy as npvalue1 = tf.placeholder(dtype=tf.float32)value2 = tf.placeholder(dtype=tf.float32)value3 = value1 + value2#定义的dataset有参数,只能使用参数化迭代...

2018-07-16 12:41:24 2740

原创 阿里云服务器深度学习环境从0配置(Ubuntu16.04+cuda8.0+cudnn6.0+tensorflow1.4+Anaconda3+opencv2+tensorlayer1.7.4)

我将所需要的包全部放在了云盘,不需要再去繁琐的寻找下载了。文中给出了所有包的地址和密码,废话不多说,开始吧!1.检查更新apt-getcd ~apt-get update2.Anconda3安装可从云盘中下载,地址链接: https://pan.baidu.com/s/1p87G0-uR2tYElijOF4gj-Q 密码: aqa2也可自己下载,Anaconda对应pyth...

2018-07-09 14:58:40 2463 2

原创 linux下从一台服务器复制文件或文件夹到本地

1.从服务器复制文件到本地:scp root@×××.×××.×××.×××:/data/test.txt /home/myfile/root@×××.×××.×××.×××   root是目标服务器(有你需要拷贝文件的服务器)的用户名,×××.×××.×××.×××是IP地址,如192.168.1.100,后面紧跟的:不要忘记,/data/test.txt是目标服务器中你要拷贝文件的地址,接一个...

2018-06-13 14:48:12 30798 3

提示
确定要删除当前文章?
取消 删除