复制预训练model的参数,只需要重新copy一个train_val.prototxt.然后把不需要复制的层的名字改一下,如(fc7 -> fc7_new),然后fine tune即可. freeze指定层参数,只需要把对应层的学习率lr_mult 设置为0即可,如: 在layer里面加上param { lr_mult: 0 }就可以了,比如全连接层里面:layer { type: "InnerProduct" param { # 对应第1个参数blob的配置,也就是全连接层的参…
之前的教程我们说了如何使用caffe训练自己的模型,下面我们来说一下如何fine tune. 所谓fine tune就是用别人训练好的模型,加上我们自己的数据,来训练新的模型.fine tune相当于使用别人的模型的前几层,来提取浅层特征,然后在最后再落入我们自己的分类中. fine tune的好处在于不用完全重新训练模型,从而提高效率,因为一般新训练模型准确率都会从很低的值开始慢慢上升,但是fine tune能够让我们在比较少的迭代次数之后得到一个比较好的效果.在数据量不是很大的情况下,fin…
一.学习NLP背景介绍:      从2019年4月份开始跟着华为云ModelArts实战营同学们一起进行了6期关于图像深度学习的学习,初步了解了关于图像标注.图像分类.物体检测,图像都目标物体检测等,基本了解了卷积神经网络(CNN)原理及相关常用模型,如:VGG16.MaxNet等.之后从9月份开始在华为云AI专家的带领指引下,对AI深度学习的另外一个重要领域:自然语言处理(NLP)的学习,到目前为止学习了:命名实体识别.文本分类.文本相似度分析.问答系统.人脸检测.在这一个多月对NLP的处理…
BERT:Pre-training of Deep Bidirectional Transformers for Language Understanding 谷歌AI语言组论文<BERT:语言理解的深度双向变换器预训练>,介绍一种新的语言表征模型BERT——来自变换器的双向编码器表征量.异于最新语言表征模型,BERT基于所有层的左.右语境来预训练深度双向表征量.BERT是首个大批句子层面和词块层面任务中取得当前最优性能的表征模型,性能超越许多使用任务特定架构的系统,刷新11项NLP任务当前最…
内容是结合:https://zhuanlan.zhihu.com/p/49271699 可以直接看原文 预训练一般要从图像处理领域说起:可以先用某个训练集合比如训练集合A或者训练集合B对这个网络进行预先训练,在A任务上或者B任务上学会网络参数,然后存起来以备后用.假设我们面临第三个任务C,网络结构采取相同的网络结构,在比较浅的几层CNN结构,网络参数初始化的时候可以加载A任务或者B任务学习好的参数,其它CNN高层的参数仍然需要随机初始化.之后我们用C任务的训练数据来训练网络,此时有两种做法,一种…
数据集下载地址: 链接:https://pan.baidu.com/s/1l1AnBgkAAEhh0vI5_loWKw提取码:2xq4 创建数据集:https://www.cnblogs.com/xiximayou/p/12398285.html 读取数据集:https://www.cnblogs.com/xiximayou/p/12422827.html 进行训练:https://www.cnblogs.com/xiximayou/p/12448300.html 保存模型并继续进行训练:htt…
预训练语言模型的前世今生 - 从Word Embedding到BERT 本篇文章共 24619 个词,一个字一个字手码的不容易,转载请标明出处:预训练语言模型的前世今生 - 从Word Embedding到BERT - 二十三岁的有德 目录 一.预训练 1.1 图像领域的预训练 1.2 预训练的思想 二.语言模型 2.1 统计语言模型 神经网络语言模型 三.词向量 3.1 独热(Onehot)编码 3.2 Word Embedding 四.Word2Vec 模型 五.自然语言处理的预训练模型 六…
现在的深度学习框架一般都是基于 Python 来实现,构建.训练.保存和调用模型都可以很容易地在 Python 下完成.但有时候,我们在实际应用这些模型的时候可能需要在其他编程语言下进行,本文将通过 C/C++ 间接调用 Python 的方式来实现在 C/C++ 程序中调用 TensorFlow 预训练好的模型. 1. 环境配置 为了能在 C/C++ 中调用 Python,我们需要配置一下头文件和库的路径,本文以 Code::Blocks 为例介绍. 在 Build -> Project opt…
如我们有一个分类任务,数据库很小,这时还是需要通过预训练来避免深度模型的过拟合问题的,只不过预训练是通过在一个大的数据库上(比如imagenet),通过有监督的训练来完成的.这种有监督预训练加小的数据库上微调的模式称为Transfer learning. R-CNN是大样本下有监督预训练 + 小样本微调的方式,解决了小样本难以训练甚至过拟合的问题. 速度:经典的目标检测算法使用滑动窗法依次判断所有可能的区域.R-CNN预先提取一系列较可能是物体的候选区域,之后仅在这些候选区域上提取特征,进行判断…
1. 训练model #!/usr/bin/env sh ./build/tools/caffe train --solver=examples/focal_length/focal_solver.prototxt 2. 测试数据 import caffe from caffe.proto import caffe_pb2 import numpy as np import cv2 run_mode = 'gpu' deploy_file = 'focal_deploy.prototxt' we…
目录 简介 预训练任务简介 自回归语言模型 自编码语言模型 预训练模型的简介与对比 ELMo 细节 ELMo的下游使用 GPT/GPT2 GPT 细节 微调 GPT2 优缺点 BERT BERT的预训练 输入表征 Fine-tunninng 缺点 ELMo/GPT/BERT对比,其优缺点 BERT-wwm RoBERTa ERNIE(艾尼) 1.0 ERNIE 2.0 XLNet 提出背景 排列语言模型(Permutation Language Model,PLM) Two-Stream Sel…
先上开源地址: https://github.com/huggingface/pytorch-transformers#quick-tour 官网: https://huggingface.co/pytorch-transformers/index.html PyTorch-Transformers(正式名称为 pytorch-pretrained-bert)是一个用于自然语言处理(NLP)的最先进的预训练模型库. 该库目前包含下列模型的 PyTorch 实现.预训练模型权重.使用脚本和下列模型…
BERT-BiLSMT-CRF-NERTensorflow solution of NER task Using BiLSTM-CRF model with Google BERT Fine-tuningGitHub: https://github.com/macanv/BERT-BiLSTM-CRF-NER本文目录机构: 自己训练模型说明结果使用自己的数据2019.1.31更新,支持pip install package现在可以使用下面的命令下载软件包了: pip install bert-b…
视觉问题引入深度神经网络后,针对端对端的训练和预测网络,可以看是特征的表达和任务的决策问题(分类,回归等).当我们自己的训练数据量过小时,往往借助牛人已经预训练好的网络进行特征的提取,然后在后面加上自己特定任务的网络进行调优.目前,ILSVRC比赛(针对1000类的分类问题)所使用数据的训练集126万张图像,验证集5万张,测试集10万张(标注未公布),大家一般使用这个比赛的前几名的网络来搭建自己特定任务的神经网络. 本篇博文主要简单讲述怎么使用TensorFlow调用预训练好的VGG网络,其他的…
Pytorch预训练模型以及修改 pytorch中自带几种常用的深度学习网络预训练模型,torchvision.models包中包含alexnet.densenet.inception.resnet.squeezenet.vgg等常用网络结构,并且提供了预训练模型,可通过调用来读取网络结构和预训练模型(模型参数).往往为了加快学习进度,训练的初期直接加载pretrain模型中预先训练好的参数.加载model如下所示: import torchvision.models as models 1.加…
1 大纲概述 文本分类这个系列将会有十篇左右,包括基于word2vec预训练的文本分类,与及基于最新的预训练模型(ELMo,BERT等)的文本分类.总共有以下系列: word2vec预训练词向量 textCNN 模型 charCNN 模型 Bi-LSTM 模型 Bi-LSTM + Attention 模型 RCNN 模型 Adversarial LSTM 模型 Transformer 模型 ELMo 预训练模型 BERT 预训练模型 所有代码均在textClassifier仓库中. 2 数据集…
在介绍这一节之前,需要你对slim模型库有一些基本了解,具体可以参考第二十二节,TensorFlow中的图片分类模型库slim的使用.数据集处理,这一节我们会详细介绍slim模型库下面的一些函数的使用. 一 简介 slim被放在tensorflow.contrib这个库下面,导入的方法如下: import tensorflow.contrib.slim as slim 这样我们就可以使用slim了,既然说到了,先来了解tensorflow.contrib这个库,tensorflow官方对它的描述…
Github地址:Mask_RCNN 『计算机视觉』Mask-RCNN_论文学习 『计算机视觉』Mask-RCNN_项目文档翻译 『计算机视觉』Mask-RCNN_推断网络其一:总览 『计算机视觉』Mask-RCNN_推断网络其二:基于ReNet101的FPN共享网络 『计算机视觉』Mask-RCNN_推断网络其三:RPN锚框处理和Proposal生成 『计算机视觉』Mask-RCNN_推断网络其四:FPN和ROIAlign的耦合 『计算机视觉』Mask-RCNN_推断网络其五:目标检测结果精炼…
BERT(Bidirectional Encoder Representations from Transformers)是谷歌AI研究人员最近发表的一篇论文:BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding.它通过在各种各样的NLP任务中呈现最先进的结果,包括问答(SQuAD v1.1).自然语言推理(MNLI)等,在机器学习社区中引起了轰动. BERT的关键技术创新是将Transf…
最近看了吴恩达老师的深度学习课程,又看了python深度学习这本书,对深度学习有了大概的了解,但是在实战的时候, 还是会有一些细枝末节没有完全弄懂,这篇文章就用来总结一下用keras实现深度学习算法的时候一些我自己很容易搞错的点. 一.与序列文本有关 1.仅对序列文本进行one-hot编码 比如:使用路透社数据集(包含许多短新闻及其对应的主题,包括46个不同的主题,每个主题有至少10个样本) from keras.datasets import reuters (train_data,train…
在深度学习的学习过程中,可能会用到一些已经训练好的模型,比如Alex Net,google Net,VGG,Resnet等,那我们怎样对这些训练好的模型进行fine-tune来提高准确率呢? 参考文章:https://blog.keras.io/building-powerful-image-classification-models-using-very-little-data.html 使用已经训练好的VGG16模型来帮助我们进行这个分类任务,因为要分类的是猫,狗这类物体,而VGG net是…
在某些任务中,我们需要针对不同的情况训练多个不同的神经网络模型,这时候,在测试阶段,我们就需要调用多个预训练好的模型分别来进行预测. 调用单个预训练好的模型请点击此处 弄明白了如何调用单个模型,其实调用多个模型也就顺理成章.我们只需要建立多个图,然后每个图导入一个模型,再针对每个图创建一个会话,分别进行预测即可. import tensorflow as tf import numpy as np # 建立两个 graph g1 = tf.Graph() g2 = tf.Graph() # 为每…
1. 准备预训练好的模型 TensorFlow 预训练好的模型被保存为以下四个文件 data 文件是训练好的参数值,meta 文件是定义的神经网络图,checkpoint 文件是所有模型的保存路径,如下所示,为简单起见只保留了一个模型. model_checkpoint_path: "/home/senius/python/c_python/test/model-40" all_model_checkpoint_paths: "/home/senius/python/c_py…
Caffe学习系列(12):训练和测试自己的图片   学习caffe的目的,不是简单的做几个练习,最终还是要用到自己的实际项目或科研中.因此,本文介绍一下,从自己的原始图片到lmdb数据,再到训练和测试模型的整个流程. 一.准备数据 有条件的同学,可以去imagenet的官网http://www.image-net.org/download-images,下载imagenet图片来训练.但是我没有下载,一个原因是注册账号的时候,验证码始终出不来(听说是google网站的验证码,而我是上不了goo…
从Word Embedding到Bert模型—自然语言处理中的预训练技术发展史 Bert最近很火,应该是最近最火爆的AI进展,网上的评价很高,那么Bert值得这么高的评价吗?我个人判断是值得.那为什么会有这么高的评价呢?是因为它有重大的理论或者模型创新吗?其实并没有,从模型创新角度看一般,创新不算大.但是架不住效果太好了,基本刷新了很多NLP的任务的最好性能,有些任务还被刷爆了,这个才是关键.另外一点是Bert具备广泛的通用性,就是说绝大部分NLP任务都可以采用类似的两阶段模式直接去提升效果,这…
随着bert在NLP各种任务上取得骄人的战绩,预训练模型在这不到一年的时间内得到了很大的发展,本系列的文章主要是简单回顾下在bert之后有哪些比较有名的预训练模型,这一期先介绍几个国内开源的预训练模型. 一,ERNIE(清华大学&华为诺亚) 论文:ERNIE: Enhanced Language Representation with Informative Entities GitHub:https://github.com/thunlp/ERNIE 清华大学和华为诺亚方舟实验室联合提出的引入…
BERT:用于语义理解的深度双向预训练转换器(Transformer)   鉴于最近BERT在人工智能领域特别火,但相关中文资料却很少,因此将BERT论文理论部分(1-3节)翻译成中文以方便大家后续研究. ·  摘要   本文主要介绍一个名为BERT的模型.与现有语言模型不同的是,BERT旨在通过调节所有层中的上下文来进行深度双向的预训练.因此,预训练的BERT表示可以通过另外的输出层进行调整,以创建用于广泛任务的状态模型,例如问题转换和语言参考,而无需实质的任务特定体系结构修改.   BERT…
一 数据准备 二.转换为lmdb格式 1.首先,在examples下面创建一个myfile的文件夹,来用存放配置文件和脚本文件.然后编写一个脚本create_filelist.sh,用来生成train.txt和test.txt清单文件 (caffe_src) root@ranxf-TEST:/workdisk/caffe/examples# mkdir myfile(caffe_src) root@ranxf-TEST:/workdisk/caffe/examples/myfile# vim c…
上一节中,我们采用了一个自定义的网络结构,从头开始训练猫狗大战分类器,最终在使用图像增强的方式下得到了82%的验证准确率.但是,想要将深度学习应用于小型图像数据集,通常不会贸然采用复杂网络并且从头开始训练(training from scratch),因为训练代价高,且很难避免过拟合问题.相对的,通常会采用一种更高效的方法--使用预训练网络. 预训练网络的使用通常有两种方式,一种是利用预训练网络简单提取图像的特征,之后可能会利用这些特征进行其他操作(比如和文本信息结合以用于image capti…
目录预训练源码结构简介输入输出源码解析参数主函数创建训练实例下一句预测&实例生成随机遮蔽输出结果一览预训练源码结构简介关于BERT,简单来说,它是一个基于Transformer架构,结合遮蔽词预测和上下句识别的预训练NLP模型.至于效果:在11种不同NLP测试中创出最佳成绩关于介绍BERT的文章我看了一些,个人感觉介绍的最全面的是机器之心再放上谷歌官方源码链接:BERT官方源码在看本博客之前,读者先要了解:1.Transformer架构2.BERT模型的创新之处3.python语言及tensor…