tensorflow
文章平均质量分 91
我就算饿死也不做程序员
欢迎关注同名公众号:"我就算饿死也不做程序员"。
交个朋友,一起交流,一起学习,一起进步。
展开
-
多场景建模: STAR(Star Topology Adaptive Recommender)
针对多场景任务建模,STAR提出了几个有效的组件来探索场景之间的关联和捕获不同场景的区别/特性:- Partitioned Normalization:基于场景分区的标准化- Star Topology FCN:组合共享中心参数和场景特定参数,对应场景样本更新场景特定参数- 辅助网络:场景特征更直接地去影响最后的预估原创 2024-08-30 21:21:19 · 1337 阅读 · 0 评论 -
多任务学习MTL模型:多目标Loss优化策略
多任务学习还存在另外一些棘手的问题:**1、不同task的loss量级不同,可能会出现loss较大的task主导的现象**(loss较大的task,梯度也会较大,导致模型的优化方向很大程度上由该task决定);**2、不同task的学习速度不同,有的慢有的快;****3、不同的loss应该分配怎样的权重?直接平均?如何选出最优的loss权重组合?**原创 2024-08-29 21:39:31 · 1606 阅读 · 0 评论 -
如何实现TensorFlow自定义算子?
tensorflow自定义算子的完整实现过程。原创 2023-12-18 22:11:55 · 860 阅读 · 1 评论 -
Embedding压缩之基于二进制码的Hash Embedding
基于二进制码的hash embedding,该方法兼具了调整embedding存储的大小的灵活性和尽可能保留模型的效果原创 2023-12-12 20:49:28 · 394 阅读 · 0 评论 -
炼丹系列1: 分层学习率&梯度累积
深度学习trick:变量初始化、分层学习率、梯度累积原创 2022-08-13 19:30:00 · 983 阅读 · 0 评论 -
TensorRT&Triton学习笔记(一):triton和模型部署+client
前言先介绍TensorRT、Triton的关系和区别:TensorRT:为inference(推理)为生,是NVIDIA研发的一款针对深度学习模型在GPU上的计算,显著提高GPU上的模型推理性能。即一种专门针对高性能推理的模型框架,也可以解析其他框架的模型如tensorflow、torch。主要优化手段如下:Triton:类似于TensorFlow Serving,但triton包括server和client。triton serving能够实现不同模型的统一部署和服务,提供http和grpc协原创 2022-03-17 09:00:00 · 22039 阅读 · 0 评论 -
多任务学习模型MTL: MMoE、PLE
常见的监督学习包括:回归:预测值为连续值,如销售额;二分类:预测值为离散值,且只有两种取值,如性别,要么是男,要么是女;多分类:预测值为离散值,且多于两种取值,如动物分类,可能有猫、狗、狮子等等;还有另外一种,也是本文的主角:多任务学习(Multi Task Learning)。MTL介绍首先,介绍什么是多任务学习,例如之前文章提到的微信视频场景,同时包含多个学习目标(task):是否转发、是否点赞、是否关注等。微信大数据挑战赛以往的做法可能会对不同的task分别建立对应的模型,但这样会原创 2021-10-25 19:00:00 · 8988 阅读 · 0 评论 -
TensorFlow Serving:深度学习模型在生产环境的部署&上线
TensorFlow Serving简单来说就是一个适合在生产环境中对tensorflow深度学习模型进行部署,然后可以非常方便地通过restful形式的接口进行访问。除此之外,它拥有许多有点:支持配置文件的定期轮询更新(periodically poll for updated),无需重新启动;优秀的模型版本控制;支持并发;支持批处理;基于docker,部署简单。(这些优点我们在下面会逐一提到)安装官方极力推荐通过docker的方式进行安装,所以,首先我们需要进行docker的原创 2021-09-07 21:53:55 · 4281 阅读 · 2 评论 -
TensorFlow-HasTable: 特征ID映射集成TF中
相信很多同志,在做深度学习模型的过程中,往往会需要将特征的原始值映射为数值类型的ID,然后再通过tf.nn.embedding_lookup转化为dense向量。最终,在上线的时候,映射关系一般保存为哈希表(dict),但如果特征很多,那么管理起来就很麻烦。今天这篇博客会讲述《如何将这个过程在tensorflow实现》!MutableHashTable首先,先附上官方的API文档tf.contrib.lookup.MutableHashTable( key_dtype, value_dtyp原创 2021-07-05 21:21:30 · 1381 阅读 · 0 评论 -
tensorflow中batch_normalization的正确使用姿势
原理batch_normalization一般是用在进入网络之前,它的作用是可以将每层网络的输入的数据分布变成正态分布,有利于网络的稳定性,加快收敛。具体的公式如下:γ(x−μ)σ2+ϵ+β\frac{\gamma(x-\mu)}{\sqrt{\sigma^2+\epsilon}}+\betaσ2+ϵγ(x−μ)+β其中γ\gammaγ和β\betaβ是决定最终的正态分布,分别影响了方差和均值,ϵ\epsilonϵ是为了避免出现分母为0的情况tensorflow在真实的使用中,均值μ\muμ和原创 2021-03-27 17:55:42 · 1519 阅读 · 1 评论 -
tensorflow eatimator实现early-stopping
相信大家,为了避免过拟合,经常需要用到early stop,即在你的loss接近收敛的时候,就可以提前停止训练了。预备知识tensorflow estimator详细介绍,实现模型的高效训练tensorflow通过tfrecord高效读写数据API介绍tf.estimator.experimental.stop_if_no_increase_hook( estimator, metric_name, max_steps_without_increase, eval_dir=None, mi原创 2021-03-23 21:44:35 · 1481 阅读 · 1 评论 -
TensorFlow Serving:深度学习模型在生产环境的部署&上线
TensorFlow Serving简单来说就是一个适合在生产环境中对tensorflow深度学习模型进行部署,然后可以非常方便地通过restful形式的接口进行访问。除此之外,它拥有许多有点:支持配置文件的定期轮询更新(periodically poll for updated),无需重新启动;优秀的模型版本控制;支持并发;支持批处理;基于docker,部署简单。(这些优点我们在下面会逐一提到)安装官方极力推荐通过docker的方式进行安装,所以,首先我们需要进行docker的原创 2020-11-25 19:07:08 · 1254 阅读 · 0 评论 -
Transformer原理解析及机器翻译的应用
基于Seq2Seq模型的机器翻译引入Attention的Seq2Seq模型-机器翻译Transformer首先,可以思考为什么会需要Transformer?大部分的机器翻译等序列生成任务都是基于Encoder-Decoder的模式,而Encoder和Decoder一般是由RNN、LSTM、GRU其中一种,它们的特点就是:每个时刻的输出是根据上一时刻隐藏层state和当前时刻的输入,由这样的方式来实现产生序列。那这样的特点就会导致无法并行计算,因为每次计算都需要等待上一时刻的计算完成。每个原创 2020-09-15 21:01:01 · 4433 阅读 · 1 评论 -
引入Attention的Seq2Seq模型-机器翻译
在上一篇博客中,我们介绍了 基于Seq2Seq模型的机器翻译。今天,在此基础上,对模型加入注意力机制Attention。模型结构首先,我们先了解一下模型的结构,基本与Seq2Seq模型大体一致:首先,第一部分是编码器Encoder,它接收source sentence,然后Encoder将其转换为一个包含具体语义信息的中间向量;加入Attention机制,接收Encoder的输出和隐藏层,得到attention weights、context vector和attention vector;最后原创 2020-09-08 22:08:02 · 757 阅读 · 0 评论 -
基于Seq2Seq模型的机器翻译
如标题所见,这篇博客的主题就是基于Seq2Seq模型的机器翻译,它的主要任务就是将一种语言翻译为另一种语言,在这里我们以英语翻译成法语为例子,如I'm a student.---->>>Je suis étudiant.这份数据是公开,可以直接下载的,下载地址为:翻译语料下载地址模型结构首先,我们先了解一下模型的结构:首先,第一部分是编码器Encoder,它接收source sentence,然后Encoder将其转换为一个包含具体语义信息的中间向量;接着,是一个解码器Deco原创 2020-09-07 21:43:51 · 3065 阅读 · 1 评论 -
深度学习模型训练小技巧
这篇文章主要介绍一些在深度学习模型训练时的一些小技巧。一、warmupwarmup可以理解为预热、热身的意思,它的思想是一开始以较小的学习率去更新参数,然后逐步提高学习率。这样的好处是:有助于减缓模型在初始阶段对mini-batch的提前过拟合现象,保持分布的平稳;有助于保持模型深层的稳定性。# 线性warmup# num_warmup_steps:warmup的步数# init_lr:预设的学习率global_step = tf.train.get_or_create_global原创 2020-09-03 22:25:13 · 1317 阅读 · 0 评论 -
tensorflow是如何实现RNN的递归计算
我们都知道RNN是一种循环神经网络,其实可以认为是一种递归计算,每一个时刻的输出都是根据上一个时刻的输出和本时刻的输入得到:Ht+1(xt+1)=f(Ht,xt)H_{t+1}(x_{t+1}) = f(H_t, x_t)Ht+1(xt+1)=f(Ht,xt)那么在tensorflow是如何实现这种递归计算的呢?RNNCell + dynamic_rnn结合上图和下面的代码,首先,我们需要自定义一个RNN类,并继承tf.nn.rnn_cell.RNNCell其中,必须实现state_原创 2020-09-01 22:17:56 · 301 阅读 · 0 评论 -
条件随机场(CRF)的原理与实现
一、概率无向图模型模型定义又称马尔科夫随机场。设有联合概率分布P(Y),由无向图G=(V,E)表示,结点V表示随机变量,边E表示随机变量之间的依赖关系。如果P(Y)满足成对、局部或全局马尔科夫性,就此联合概率分布为概率无向图模型。成对马尔科夫性u和v是无向图G中任意两个没有边连接的结点,其他结点为O,成对马尔科尔性是指YOY_OYO的条件下,YuY_uYu和YvY_vYv是条件独立的,即P(Yu,Yv∣YO)=P(Yu∣YO)P(Yv∣YO)P(Y_u,Y_v|Y_O) = P(Y_u|Y_原创 2020-07-30 22:09:05 · 1502 阅读 · 0 评论 -
Java调用在python中完成训练的tensorflow模型
众所周知,tensorflow是Google开源的一个深度学习框架。虽然它除了python语言兼容,还提供了c和Java的API,但目前大部分人还是选择在python环境进行深度学习模型的搭建和训练,不过很多时候,我们需要将完成训练之后较为有效的模型进行封装和部署,但是像许多公司最后的部署都是用Java语言实现的,所以,此时我们就需要掌握如何通过Java来调用tensorflow的模型。保存模型...原创 2019-08-20 21:23:41 · 3743 阅读 · 1 评论 -
tensorflow通过tfrecord高效读写数据
利用tensorflow提供的tfrecord数据存储格式工具,我们可以将我们已经进行过处理的数据保存起来,以便我们下次更高效地读取,略过数据处理的过程,提高效率。具体的步骤大概分为以下几步:将数据转化为tf.train.Feature,然后存于字典;接着,将其转化为tf.train.example,然后进行序列化,写入tf.python_io.TFRecordWriter,到这里就完成了写...原创 2019-05-23 21:44:11 · 1002 阅读 · 0 评论 -
tensorflow estimator详细介绍,实现模型的高效训练
estimator是tensorflow高度封装的一个类,里面有一些可以直接使用的分类和回归模型,例如tf.estimator.DNNClassifier,但这不是这篇博客的主题,而是怎么使用estimator来实现我们自定义模型的训练。它的步骤主要分为以下几个部分:构建model_fn,在这个方法里面定义自己的模型以及训练和测试过程要做的事情;构建input_fn,在这个方法数据的来源和喂...原创 2019-05-26 11:40:42 · 6035 阅读 · 0 评论 -
TensorFlow dataset.shuffle、batch、repeat用法
直接看代码例子,有详细注释!!import tensorflow as tfimport numpy as npd = np.arange(0,60).reshape([6, 10])# 将array转化为tensordata = tf.data.Dataset.from_tensor_slices(d)# 从data数据集中按顺序抽取buffer_size个样本放在buffe...原创 2019-05-13 23:25:55 · 13911 阅读 · 6 评论