自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(57)
  • 收藏
  • 关注

原创 多模态训练如何平衡不同模态

我们在进行多模态训练时,会出现模态不平衡的问题,往往使用了文本预训练模型的文本模态由于大量的预训练会容易出现过拟合现象,在文本模态过拟合的时候,视觉模态还处在欠拟合状态,则会导致视觉模态无法训练到最佳状态。如何平衡不同模态的性能,让多模态都能发挥自己最佳状态,从而提升整体多模态特征性能呢?...

2022-06-20 21:57:00 3623 3

原创 pytorch多机训练

设置环境变量export NCCL_P2P_DISABLE=1export NCCL_IB_DISABLE=1export NCCL_DEBUG=infoexport NCCL_SOCKET_IFNAME=eth0

2022-06-15 22:44:07 2768

原创 如何在内存中高效进行视频下载load后用完即删的操作

如何在内存中高效进行视频下载load后用完即删的操作

2022-06-01 17:00:25 257 1

原创 pytorch中如何给网络添加mask

深度学习中,我们经常会遇到需要添加mask的场景,如:nlp中为了长度对齐,需要补齐长度,但在计算attention时会将补齐位置mask掉从而不参与attention计算; mask相关的预训练任务,如MLM、MAE等,需要mask掉被遮盖的token,以完成预测的预训练任务; 计算loss时想忽略掉一些不想用来计算该loss的样本。nlp bert中常见的mask补齐位置的方法为:将mask位置的mask设置为一个很小的数,如-10000,# 将attention_mask设置

2022-05-10 21:39:57 1680

原创 解决ffmpeg视频转码后视频清晰度下降的问题

Chrome不支持非h264编码的mp4视频播放,可通过ffmpeg将视频转码成h264编码:ffmpeg -i input.mp4 -vcodec h264 -b:v 0 output.mp4注:如果不加参数-b:v 0 会有精度损失,加了之后相当于无损转换

2022-02-15 20:22:45 11403 6

原创 从Python中链表的节点删除思考Python自定义对象的可更改性

在leetcode上做到 203. 移除链表元素的题目,该题目的难度为简单,但是在做的时候,由于对Python中的可更改对象和不可更改对象概念理解不是很深刻,导致看不懂答案。该题的一种解法如下:# Definition for singly-linked list.# class ListNode:# def __init__(self, val=0, next=None):# self.val = val# self.next = nextclass S

2021-03-20 16:49:27 157 2

原创 基于tensorrtx将crnn pytorch模型转换成tensorrt形式,并使用python接口部署,效率提升一半以上

1. 先装好tensorrt参考Ubuntu18.04 conda环境中配置tensorrt。由于使用python接口,需要安装好pycuda2. 参考tensorrtx CRNN转换模型为engine3. 使用python接口部署tensorrtx里默认使用的CRNN库是 https://github.com/meijieru/crnn.pytorch.git ,该库没有针对中文的模型。同时,tensorrtx也没有提供官方的python接口部署样例。我基于tensorrtx CRNN转换模

2021-03-08 21:12:44 1078 6

原创 ubuntu18.04 系统盘空间满了怎么办

自动清理没用文件sudo apt-get cleansudo apt-get autocleansudo apt-get autoremove清理trash将回收站清空清理日志进入/var/log,将没用的、大的日志清理掉清理过时的snap进入 /var/lib/snapd/snaps,会发现一些snap有多个版本,实际上当前一般使用的是最新版本,旧的可以卸载掉。详细操作见 清理旧的snap...

2021-03-04 11:43:54 7850 2

原创 tensorrt转换模型进行了哪些操作

对于网络layer graph进行的操作:消除输出未使用的层消除相当于无操作的操作卷积、偏置和ReLU运算的融合具有足够相似参数和相同源张量的运算聚合(例如,GoogleNet v5的初始模块中的1x1卷积;inception结构中同一个block中有不同感受野的卷积分支,每个分支中开始的1*1卷积操作可以聚合计算后再拆分)通过将层输出定向到正确的最终目的地来合并连接层。对于参数精度的操作:修改为float16或int8精度,会损失模型的acc。...

2021-03-03 16:53:43 243 1

原创 Ubuntu18.04 conda环境中配置tensorrt,并安装torch2trt,如何将pytorch模型转换成tensorrt

安装tensorrtconda create --name tensorrt python=3.7conda activate tensorrt官网下载TensorRT-7.0.0.11.Ubuntu-18.04.x86_64-gnu.cuda-10.0.cudnn7.6.tar.gz(注意要先下载tensorrt,根据tensorrt的版本来设置cuda和cudnn的版本)pip install pytorch1.6.0 torchvision0.7.0conda install cudato

2021-03-02 17:16:59 2941

原创 如何编辑styleGAN生成的图像的属性

发现一个关于生成高清动漫头像的很棒的博客:gwern faces,讲述了从GAN诞生以来尝试过的各种方法生成动漫人脸的经验,值得一看如何对无监督的styleGan生成器找到对应的特征新创建一个encoder,用于对image编码获取其对应的z。方法是,通过训练好的styleGAN,获取z-生成image对,将该z-image作为训练集用于训练该编码器,则该编码器能够对任意一张图片获得其对应于该styleGAN的编码z,既可通过对该z进行扰动获得一些特征调整。通过反向传播的方法,获取对应编码z。一个神

2021-02-25 19:42:48 2169 1

转载 从Google Drive用命令行下载大文件(速度快,下载稳定不断)

这里写自定义目录标题背景前提问题背景做深度学习任务时往往需要下载一些 预训练模型或者数据集,这些文件往往都在google drive上,且很大。使用Chrome自带的下载,总是会中断,导致下载失败。苦苦寻觅方法,找到这篇优秀的博文:从Google Drive用命令行下载大文件,抄作业过程遇到几个小问题,记录一下。前提已经翻墙的情况下问题我在获取drive文件下载链接时的形式为 https://drive.google.com/file/d/1WNQELgHnaqMTq3TlrnDaVkyr

2021-02-22 17:48:42 5686 1

原创 Ubuntu18.04 屏幕突然放大,然后屏幕随着鼠标的移动而移动,重启也无法恢复

实际上,这是系统的放大镜功能,在Ubuntu里快捷键默认为Alt+Super+=(放大),Alt+Super+-(缩小),见下图中的Zoom in和Zoom out,按后者即可缩小回正常大小。

2020-11-18 10:36:37 5216 2

原创 Pytorch多GPU训练记录

单节点多GPU并行训练DistributedDataParallel使用简介:在单节点多卡的情况下DistributedDataParallel比torch.nn.DataParallel快。DistributedDataParallel实际上是每块GPU创建一个进程,并把数据平均分配到多块GPU上训练步骤:1. 设置CUDA_VISIBLE_DEVICES:可以在运行命令时在命令行里设置:CUDA_VISIBLE_DEVICES=0,1 python -m torch.distri..

2020-11-13 12:13:49 705

原创 python opencv如何读取透明png图片以及如何编辑透明度

python OpenCV中cv2.imread(img_path)默认会读取BGR图像,即3通道图像,cv2.imread(img_path,0): 读取灰度图像cv2.imread(img_path, cv2.IMREAD_UNCHANGED) : 读取BGR+alpha通道,共4通道原始图(注意,png格式图像有4个通道,jpg图像本身只有3个通道,只会读出3通道),alpha通道用于表示透明度,使用该方法读取则能读到png图像中的透明度。实际上,我们也可以手动对alpha通道进.

2020-11-05 21:22:49 19102 2

原创 pytorch分类任务训练几个batch后loss突变为Nan

loss在前几个batch处于正常下降状态,之后突变为Nan,没有增大爆炸的过程。尝试减小学习率,无果。考虑是网络本身有问题导致梯度爆炸。网络分类分支head如下:[nn.Conv3d(ngf, self.opt.n_class, kernel_size=1, padding=0), nn.AdaptiveMaxPool3d((1, None, None))]考虑最后的时间维度的max pooling之后,没有加激活函数,导致该分支输出的数值容易爆炸,所以在之后加了一个tanh层:[n

2020-09-01 13:43:42 1831

原创 video prediction深度学习算法汇总

SDC-Net:Video prediction using spatially-displaced convolutionECCV2018,未开源,来自英伟达团队,看结构是vid2vid前身,与另一篇CVPR2019 oral 《Improving Semantic Segmentation via Video Propagation and Label Relaxation》,三者应该来自同一团队。Disentangling Physical Dynamics from Unknown F.

2020-06-11 19:41:30 3142

原创 视频预测算法vid2vid比MCNet好在哪里?

视频是一个时序性的图像,所以在模型中既需要捕捉时间相关性,也需要捕捉空间上的特征。时间相关性可以用LSTM这样的类RNN模型来捕捉,而空间相关性则需要CNN网络。更早一点的ConvLSTM单元就是这种思想。深度学习能够处理各种各样的问题,前提是根据问题本身需要设计相关的网络结构,MCNet和vid2vid是17年和18年比较优秀的视频序列处理算法,本文主要分析vid2vid网络与MCNet相比更加优秀的设计,同时尝试解读设计背后的思考和理由。

2019-11-28 22:54:12 2264

原创 对抗样本的创建和防御

先列出两个对抗样本创建的github链接:cleverhans百度的AdvBox什么是对抗样本对抗样本产生原因 对抗样本发生的原因:深度学习模型的高度线性性质,导致通过线性模型参数的点乘累积放大输入图像像素值的微小改变。创建对抗样本1. 白盒No-target攻击——FGSM, I-FGSM •固定模型参数W,b,梯度上...

2019-07-29 18:30:46 5728

原创 python中,tuple里的list中的元素为什么可以变,tuple到底可不可变?

众所周知,tuple与list的区别就是tuple是不可变的,是为了让程序更安全,tuple可以当作dict的key但是list不行。但tuple并不是完全不可变的,如下所示,tuple中的list的元素就是可以修改的。>>> a = 1>>> b = 2>>> c = [3,4,5]>>> d = (a,b,c)...

2019-06-27 13:22:45 2765

原创 目标检测算法横向比较,包括backbone、特征融合、loss、proposal/anchor/heatmap、NMS、正负样本设置等

目标检测算法发展移步:目标检测算法本文从算法改进的方向,进行横向比较,包括backbone,特征融合、loss、proposal/anchor/heatmap、NMS、正负样本设置等Reference:Object Detection in 20 Years: A Survey Table of ContentsBackbone改进DenseNetResNeXt(gro...

2019-05-27 21:37:34 9789 1

原创 目标检测算法综述,包括two-stage,one-stage,anchor-free等(未完)

2019年初的目标检测算法综述:Object Detection in 20 Years: A Survey本文不包括传统算法,只讲基于深度学习的主要算法。

2019-05-26 01:40:22 4494 2

原创 Batch Normalization详解和momentum参数理解

论文:https://arxiv.org/pdf/1502.03167.pdf以下博客对batch Normalization的原理,优点和代码解析做了非常清晰的讲解:http://blog.csdn.net/hjimce/article/details/50866313batch Normalization公式注意:上式中的γ和β是两个可以学习的参数(μ是求出的均值,σ是求出的...

2019-05-20 21:24:00 22563 7

原创 Keras LSTM的参数input_shape, units等的理解

之前一直对LSTM的参数理解有误, 特别是units参数, 特此更正.input = Input(shape=(100,), dtype='float32', name='main_input')lstm1 = Bidirectional(LSTM(100, return_sequences=True))(input)dropout1 = Dropout(0.2)(lstm1)lstm...

2019-05-16 20:47:18 44762 17

原创 3D目标检测算法详解_pointnet, pointnet++,frustum-pointnets,VoteNet

知识点回顾什么是点云,如何获得点云。点云包含了很多信息,除了3维坐标数据之外,还可能包括颜色、分类值、强度值、时间等。 点云数据可以由多种方法获得:1.直接由Lidar激光扫描出点云数据。 2.不同角度的2D图像组合成点云3.由深度图(Depth Map)生成点云,即将图像坐标+深度信息从图像坐标系转换为世界坐标系。 点云和深度图都会出现深度信息的缺失,因为往往传感器只能捕捉物体表面...

2019-05-10 10:38:30 9710 3

原创 深度学习中使用到的数学知识点

Jacobian matrix雅可比矩阵的重要性在于它体现了一个可微方程与给出点的最优线性逼近.Hessian Matrix黑塞矩阵是一个多元函数的二阶偏导数构成的方阵,描述了函数的局部曲率。黑塞矩阵常用于牛顿法解决优化问题,利用黑塞矩阵可判定多元函数的极值问题。在工程实际问题的优化设计中,所列的目标函数往往很复杂,为了使问题简化,常常将目标函数在某点邻域展开成泰勒多项式...

2019-05-05 14:42:53 464

原创 异常检测/离群点检测算法汇总

不存在普遍意义上的最优模型,不过有些模型的表现一直不错,建议优先考虑。对于大数据量和高纬度的数据集,Isolation Forest算法的表现比较好。小数据集上,简单算法KNN和MCD的表现不错。模型效果和效率往往是对立的,PCA和MCD的理论类似(都是基于协方差),但是前者是后者的“简洁版”,前者速度更快,但是后者效果更好。HBOS的计算速度快,但效果不稳定,在特征独立的情况下,可能有...

2019-04-26 18:10:44 16656 1

原创 C++知识点

内存泄露原因堆内存泄露:内存可能分配失败,但是却使用了。良好的编程习惯应该是分配内存后调用时,检查指针是否为NULL。如果指针p是函数的参数,那么在函数的入口处用assert(p!=NULL)进行检查。如果是用malloc或new来申请内存,应该用if(p==NULL) 或if(p!=NULL)进行防错处理。 野指针 变量内存分配成功,但是没有初始化就使用。良好的编程习惯是分配内存的时...

2019-04-24 23:30:05 104

原创 基于faceswap-GAN进行换脸

官方Github:faceswap-GAN先运行MTCNN_video_face_detection_alignment.ipynb对视频中的人脸进行分割,并生成人脸图片供使用,运行该文件会需要运行以下命令:该步骤调用了facenet的mtcnn的weights,需要下载训练好的mtcnn模型参数。 在系统环境里安装ffmpeg, ffmpeg用于将视频转成图片,处理图片,和将图片...

2019-04-20 19:49:57 8695 4

原创 GAN网络的发展(持续更新)

GAN生成对抗网络是最近比较火的深度学习技术,这里记录一下自己学习GAN的笔记,以便日后复习。本文不会给出每种模型的细节,只是提一下主要区别和trick,同时给出相关参考链接。GAN可以做很多事情,如自动生成动漫人物头像;做pix2pix(image2image)的工作,如给黑白图片上色,基于模糊图片生成高清图片,素描生成真实照片,将风景画“莫奈化”等;也可以用于最近比较火的AI换脸,GAN...

2019-04-06 22:00:03 7318

原创 深度学习算法在不同任务中的使用到的相同feature/trick合集(持续更新)

在深度学习不同的任务中,往往会用到类似的trick,虽然NLP算法和图像算法处理的场景不同,但是有很多共同的trick可以起到不错的作用,本文记录不同任务中使用到的相同trick。NLP任务的Transformer模型和换脸任务deepfake(原始版本)Transformer的multi-head机制auto-encoder版本的deepfake的upscale(反卷积)中使用了...

2019-03-26 11:18:08 276

原创 万能指纹创建——DeepMasterPrints论文解读

论文地址:DeepMasterPrints: Generating MasterPrints for Dictionary Attacks via Latent Variable Evolution文章基于GAN网络生成一个可以匹配最多数指纹的指纹图像,再使用潜在变量进化生成用于字典攻击的万能指纹(DeepMasterPrint)。文章提出了一种新的方法:Latent Variable...

2019-03-22 19:21:01 708 1

原创 深度学习面试题常见问答

目录有哪些方法可以避免过拟合?造成过拟合的原因:解决办法:dropout在训练时和推理时的区别是什么?L1和L2正则化的区别?为什么L1比L2更稀疏?Batch Size大小如何影响收敛速度?BN的原理,与白化的联系损失/代价函数有哪些,分别有什么特点?反向传播算法分类问题的评价标准?回归问题的评价标准?优化算法SGD、Momentum、Nester...

2019-03-02 16:56:05 16320

转载 Challenge/Response挑战回应认证

Challenge/Response认证的过程如下:1) 客户端向服务器发出认证请求;2) 认证服务器从用户数据库中查询用户是否是合法的用户,若不是,则不做进一步的处理;3) 认证服务器内部产生一个随机数,作为Challenge,发送给用户;4) 客户将口令和随机数合并,使用单向Hash函数 ( 例如MD5算法 ) 生成一个字节串作为Response;5) 认证服务器将Response...

2019-02-25 13:30:50 12065

原创 如何给深度学习加速——模型压缩、推理加速

深度学习模型往往受到端计算力的限制,无法很好的部署在移动端或无法降低端的计算成本。例如自动驾驶的模型就过于巨大,而且往往是很多模型并行,所以一般会用一些加速的方法来降低推算的计算力要求。加速方法有多种不同角度:网络结构,模型推理加速,模型剪枝,参数量化等。Table of Contents网络结构加速模型推理加速优化模型的推理顺序降低参数精度加速模型剪枝加速参数量化...

2019-01-31 17:31:44 12670

原创 tensorflow BERT学习记录--使用自己的训练集--run_classifier.py

tensorflow bert github上有tensorflow bert的源代码和预训练模型的下载链接该仓库里的run_classifier.py 用于fine-tuning以及推理,官方的BERT库里,只需要修改run_classifier.py即可完成对新数据集的fine-tuning和推理, 该文件里的代码主要是以下几块: 训练参数Flags的定义, 没什么好说的, 官方...

2019-01-25 16:53:45 10397 3

原创 Keras使用心得记录

创建model(Squential形式): model.Squential() model.add(Dense(num_pixels, input_dim=num_pixels, init='normal', activation='relu')) model.add(Dense(num_classes, init='normal', activation='so...

2019-01-07 16:23:31 11259 3

原创 Pytorch和Tensorflow在实现RNN上的区别

TF:单个RNN单元可以调用:rnn_cell = tf.nn.rnn_cell.BasicLSTMCell(num_units=128) # num_units是隐藏状态的特征维数,如果直接将h当作输出,则输出特征的维数是128(也可以调用tf.nn.rnn_cell.BasicRNNCell(num_units=128)或tf.nn.rnn_cell.GRUCell(num_un...

2019-01-03 20:17:47 1862

原创 基于Pytorch理解attention decoder网络结构

2019.1.4更新Pytorch的tutorials上目前的attention不是论文上原本的attention,是有问题的,详见讨论:https://github.com/spro/practical-pytorch/issues/84可以看https://github.com/spro/practical-pytorch/blob/master/seq2seq-translation...

2018-12-29 17:38:28 4886 1

原创 如何修改/固定matplotlib显示图片窗口在屏幕上的位置

参考:https://stackoverflow.com/questions/7449585/how-do-you-set-the-absolute-position-of-figure-windows-with-matplotlibmatplotlib默认使用TkAgg backend,可以使用以下语句:mngr = plt.get_current_fig_manager() # 获...

2018-12-26 21:24:07 15501 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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