![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
tensorflow
零落_World
https://github.com/cdj0311
展开
-
Keras求Mask后的Embedding均值
记录下,用tensorflow很容易实现,但Keras稍微麻烦点,基本思路就是先标记出输入序列中0和非0得到这样的序列:mask=[0,0,1,1,1],其中0代表padding或者需要排除计算的位置,然后用这个序列跟Embedding结果进行乘积,将Embedding对应输入为0的向量置0,最后统计非0 位置向量的和除以mask的和即可。代码如下:import numpy as npimport keras.backend as Kfrom keras.layers import...原创 2022-05-04 16:26:08 · 1036 阅读 · 0 评论 -
Keras-DSSM之in-batch余弦相似度负采样层
定义余弦相似度层,并在batch内进行负采样NEG, batch_size = 20, 128class NegativeCosineLayer(): """ 自定义batch内负采样并做cosine相似度的层 """ def __call__(self, inputs): def _cosine(x): query_encoder, doc_encoder = x doc_encoder_fd = doc_encod原创 2021-10-20 15:00:00 · 1157 阅读 · 1 评论 -
tensorflow查看op性能
训练时添加tf.train.ProfilerHook记录各个op的计算资源。hook = tf.train.ProfilerHook( save_steps=1000, output_dir=os.path.join("./ckpt/", "tracing"), show_dataflow=True, show_memory=True) hooks = [hook] train_spec = tf.estimator.Tr原创 2020-09-30 14:49:57 · 744 阅读 · 0 评论 -
saved_model_cli的使用
使用saved_model_cli命令可对导出的pb模型查看模型输入输出和直接运行得到预测结果。假设我们保存的模型为:1597977225|saved_model.pb |variables |variables.data-00000-of-00001 |variables.index 1. 查看模型输入输出:saved_model_cli show --dir1597977225 --all ...原创 2020-08-21 10:59:54 · 3212 阅读 · 0 评论 -
DSSM深度语义匹配原理与Tensorflow实现
在工业界DSSM(Deep Structured Semantic Models)已经演化成一种语义匹配框架,不仅用于文本的匹配,也用于推荐系统的User-Item的匹配,本文描述与实现DSSM在文本匹配上的应用,主要内容如下:DSSM原理 数据预处理 模型实现 模型训练 模型预测DSSM原理 DSSM的主要结构如下: 主要分为表示层和匹配层,表示层可使用全连接、RNN、Transformer等等网络得到query和d...原创 2020-07-28 16:55:37 · 4487 阅读 · 1 评论 -
tensorflow定义多个优化器加速Embedding的训练
在遇到大规模推荐算法训练时,我们常常会有不同种类的特征,大体上可分为稀疏特征和稠密特征两类。稀疏特征一般会经过Embedding转为稠密特征再传入全连接层。然而,当稀疏特征中包含大量ID类特征时,由于其原始维度非常高(如UserID几乎都是千万级以上),训练如此庞大的Embedding时会非常缓慢。一种解决方案是增大学习率,但学习率过大又会影响稠密特征(如一些向量特征)的训练,所以可以设计两个优化器分别以不同的学习率去优化稀疏Embedding和稠密特征。这里以tf.estimator + tf.f原创 2020-07-10 11:13:32 · 2845 阅读 · 1 评论 -
如何查看TFRecod数据详情
使用以下代码直接查看TFRecord里面的数据情况,无需解析。import sysimport tensorflow as tf def main(): filepath = './train.tfrecord' with tf.Session() as sess: filenames = [filepath] # 加载TFRecord数据 ds = tf.data.TFRecordDataset(filenames) # 读取N条原创 2020-06-29 15:49:46 · 989 阅读 · 0 评论 -
tensorflow读取hdfs上的文件
1. 确保服务器能访问hdfs2. 在~/.bashrc中加入以下脚本:export JAVA_HOME=/usr/local/jdk1.8.0_131export HADOOP_HDFS_HOME=/usr/local/hadoop-2.7.3export PATH=$PATH:$HADOOP_HDFS_HOME/libexec/hadoop-config.shexport LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$JAVA_HOME/jre/lib/amd64/原创 2020-06-04 15:02:03 · 3951 阅读 · 2 评论 -
利用predictor预测tensorflow导出的pb模型
导出的pb模型可使用tf.contrib.predictor很方便的进行预测,仅限于tensorflow 1.x,代码如下:import numpy as npimport tensorflow as tffrom tensorflow.contrib import predictor# 加载模型,使用estimator导出的模型、tf.saved_model保存的模型都可以使用该...原创 2020-05-08 11:47:17 · 2069 阅读 · 0 评论 -
利用hadoop streaming分布式生成TFRecord文件
原理:在集群上每个机器生成TFRecord文件然后推送到指定的HDFS位置,并删除源TFRecord(这步可以不用,会自动删除)。1. map阶段import sys, randomsys.path.append("./")# 产生随机数,用以shuffle数据# 如果输入的rcfile格式的文件,则需要删除下标0的数据for line in sys.stdin: lin...原创 2020-05-08 11:36:48 · 987 阅读 · 0 评论 -
利用tensorflow estimator API实现双塔推荐算法
Tensorflow estimator实现分布式训练很简单,只需要将数据进行相应的切分丢给模型就可以很方便的完成分布式训练了。以下代码是一个完整的推荐算法模板,可根据自己的需要修改数据读取和模型结构部分,tensorflow==1.13.1。1. 特征处理部分,feature_processing.py#coding:utf-8import tensorflow as tffrom...原创 2020-05-06 16:21:17 · 2333 阅读 · 2 评论 -
利用tf.saved_model导出keras模型
keras一般保存为h5py格式的模型,当然也可以直接使用tf.saved_model保存为pb模型,那如果想将保存的h5py模型导出为pb模型该怎么办呢?以下代码就可以完成该项功能。假设我们保存了keras的模型为model.json(结构)和weights.h5(权重),首先读取keras模型:# tensorflow == 1.13.1import tensorflow as...原创 2020-05-06 15:30:50 · 2217 阅读 · 3 评论 -
利用tensorboard查看pb模型图
1. 模型图和参数全保存在一个pb文件里(即freeze出来的模型),查看模型图代码如下:import tensorflow as tfwith tf.Session() as sess: model_filename ='model/freezon.pb' with tf.gfile.GFile(model_filename, 'rb') as f: gr...原创 2020-04-29 10:39:59 · 2916 阅读 · 1 评论 -
利用小trick加速tensorflow的训练
tensorflow ==1.13.11. tf.data并行读取tfrecord数据def parse_exp(example): features = {} """ tfrecord解析代码 """ return featuresdef input_fn(filenames = "./train_data/*.tfrecord", batch_size=1...原创 2020-04-15 11:31:37 · 357 阅读 · 0 评论 -
利用hadoop streaming对tensorflow模型进行分布式预测
0. python打包并上传到hdfs# 安装Pythonmkdir Pythonexport PYTHON_ROOT=~/Pythontar -xvf Python-3.6.8.tgzpushd Python-3.6.8./configure --prefix="{PYTHON_ROOT}" --enable-unicode=cs4make && make in...原创 2019-12-16 18:52:12 · 1302 阅读 · 1 评论