
Tensorflow
文章平均质量分 86
tensorflow 相关使用
BIT_666
天道酬勤,厚积薄发
展开
-
深度学习 - 36.TF x Keras TF 常用矩阵计算方法大全
tf 常用矩阵计算方法,包括 multiply、matmul、tensordot、dot、batch_dot 与 einsum原创 2023-03-01 10:54:07 · 942 阅读 · 10 评论 -
深度学习 - 35.TF x Keras FM、WideAndDeep、DeepFM、DeepFwFM、DeepFmFM 理论与实战
CTR 推荐场景下常用推荐算法 FM、DeepFM、FwFM、FmFM keras 实现。原创 2023-02-24 17:28:00 · 1751 阅读 · 12 评论 -
Java / Tensorflow - Expects arg[0] to be int64 but int32 is provided 异常处理
Java 调用 Session 报错 Expects arg[0] to be int64 but int32 is provided 异常解决。原创 2022-11-01 19:00:38 · 736 阅读 · 1 评论 -
Java / Tensorflow - API 调用 pb 模型使用 GPU 推理
Java x Tensorflow x GPU 使用与踩坑指南。原创 2022-09-30 14:29:52 · 2965 阅读 · 5 评论 -
深度学习 - 28.TF x Keras 训练中出现 Nan 值
一.引言使用 mean-std 归一化数值型 Tensor 时,出现 Nan 值,导致训练时出现 Nan Loss:优快云-BITDDD通过下面几种方法简单处理下 Nan 值。二.情景再现出现 Nan 值是因为归一化时原始 Tensor 为全0导致 variance 为 0,从而 x - mean / std 得到 Nan # 初始化全0 Tensor tensor = tf.constant(np.zeros(shape=(5, 3)), dtype..原创 2021-08-20 17:33:37 · 3368 阅读 · 0 评论 -
深度学习 - 27.TF DataSet 使用与优化
一.引言上一篇文章Tensorflow - 一文搞懂 TF2.x tf.feature_column讲到了 tensorflow 如何构建特征工程,本文继续反向探索,构造特征工程之前需要处理源数据构造原始样本,下面主要介绍 DataSet 的使用与优化技巧。二.基础使用这里以 tf.data.TextLineDataset 生成 DataSet 为例。最基本的处理方法:1.读取对应文件夹文件 file_names = "./tr" field_size = 100..原创 2021-08-05 18:03:38 · 2094 阅读 · 0 评论 -
深度学习 - 26.TF TF2.x tf.feature_column 详解
一.引言上一篇文章Tensorflow - TF1.x VS TF2.x tf.feature_column介绍了 feature_column 在 TF1.x 与 TF 2.x 在使用上的区别,这里介绍一下 feature_column 中用到的特征列以及对应方法。二.feature_column 整体介绍1.整体关系feature_column 模块中包含下述9个函数,除 buketized_column 函数外,其他函数只能返回 Categorical Column 或 D....原创 2021-07-30 10:47:32 · 2339 阅读 · 6 评论 -
深度学习 - 25.TF TF1.x VS TF2.x tf.feature_column
一.引言Tensorflow Esitimator 场景下常用到 feature column 对原始特征进行处理,TF1 与 TF2 在 feature column 的使用上有一些不同,下面通过两个简单例子区分。二.TF 1.x feature column1.定义特征列常见的特征列如下,这里我们结合 bucketized_column + numeric_column 构造特征列年龄分桶,这里通过 10-90 作为边界,形成了10个分桶。 age_bucket原创 2021-07-23 09:49:44 · 1037 阅读 · 0 评论 -
深度学习 - 24.TF tf.cond 条件判断
一.引言上一篇文章py_function中提到一些自定义操作可以通过 py_function 实现,其中就涉及 If-else,其实条件判断也可以通过 tf.cond 实现,下面看一下如何使用。二.tf.cond1.函数根据 pred 的值决定使用 true_fn 或者是 false_fn,类似于 If-else 的条件判断。def cond_for_tf_v2(pred, true_fn=None, ..原创 2021-07-13 15:37:57 · 3212 阅读 · 0 评论 -
深度学习 - 23.TF TF1.x tf.py_func VS TF2.x tf.py_function
一.引言py_func 与 py_function 是 Python 与 Tensorflow 沟通的桥梁,一些复杂的自定义操作而 tf 又没有实现 API 时,可以使用 py_func 或 py_function 实现自己的功能。日常最常使用的例如 if else,判断 tensor 形状等操作,就可以使用 py_func / py_function。二.TF1.x tf.py_func1.使用def py_func(func, inp,原创 2021-07-11 17:49:11 · 591 阅读 · 0 评论 -
深度学习 - 22.TF TF1.x tf.string_split VS TF2.x tf.strings.split
一.引言开发时同时用到了TF1与TF2,使用中发现 split 函数在V1和V2中有一些区别,记录一下。二.TF1.x tf.string_split1.使用Input: 对字符串数组进行分割,默认分隔符为" ",skip_empty代表是否忽略空字符创Output: 返回一个SparseTensordef string_split(source, delimiter=" ", skip_empty=True): delimiter = ops.convert_to_ten原创 2021-07-08 10:53:43 · 902 阅读 · 0 评论 -
深度学习 - 21.TF x Keras DSSM 理论与实践
一.引言DSSM (Learning Deep Structured Semantic Models for Web Search using Clickthrough Data) 一文利用点击数据挖掘词语的深层语义模型,其思路是构建一个 Query 塔和一个 Title 塔,利用深度学习进行特征挖掘,最终计算两个塔的向量相似度,结合标签进行反向传播训练,所以 DSSM 又叫双塔,其应用场景主要以搜索,召回等场景为主,当然也可用于给定 user-item 计算其向量与相似度,下面就看看双塔如何构造。原创 2021-06-22 12:02:06 · 2068 阅读 · 5 评论 -
深度学习 - 20.TF x Keras Dropout 理论与实践
一.引言Dropout 层用于解决过拟合的问题,当原始样本偏少而深度模型参数偏多时,模型偏向于学习一些极端的特征从而发生过拟合,在xun'li'na'yang原创 2021-06-09 17:09:59 · 1469 阅读 · 0 评论 -
深度学习 - 19.TF x Keras Batch Normalization 理论与实践
一.引言训练深层神经网络是一个复杂的事实每层输入的分布在随着前一层参数的变化,进行训练。这就降低了训练的速度,因为它需要较少的学习速率和仔细的参数初始化,并使其-很难训练具有饱和非线性的模型。我们把这种现象称为内部协变量移位,并通过规范化层输入来解决问题。我们的方法从使规范化成为模型体系结构的一部分和执行每个训练小批量的标准化。批量标准化允许我们使用更高的学习率和初始化时不要太小心。它还可以作为一个正则化,在某些情况下消除辍学的需要。......原创 2021-06-08 17:32:53 · 2891 阅读 · 0 评论 -
深度学习 - 18.TF x Keras DeepFM 原理与实现
一.引言之前的文章中循序渐进的介绍过 LR,FM,WideAndDeep,有了这些模型的了解,接一下介绍当下比较流行的深度模型 DeepFm,WideAndDeep 是原创 2021-06-03 12:07:27 · 1699 阅读 · 3 评论 -
深度学习 - 17.TF x Keras FM 原理与实现
一.引言之前讲到过常用的 CTR 模型类似 WideAndDeep,其中包含了 LR 与 DNN,LR主要着重于挖掘一阶特征,DNN主要挖掘特征高阶交叉,FM模型主要针对与模型的二阶交叉,原创 2021-06-02 11:57:58 · 2440 阅读 · 2 评论 -
Tensorflow - 拿捏 tf.nn.embedding_lookup && tf.nn.embedding_lookup_sparse
一.引言前面提到Wide & Deep中涉及到类别特征的 embedding,文中的 embedding 是由 Embedding 层得到,实际应用场景中,也可以从预训练的模型中加载已知 id 的 embedding,例如可以从矩阵分解获取 user-item 的向量,也可以通过 Word2vec 预训练的到语义的embedding 等等,embedding_lookup 相关函数可以看作是一个字典,给定对应特征的 id,从中获取 id 对应的 embedding 并做后续处理。二...原创 2021-05-20 18:05:16 · 1989 阅读 · 1 评论 -
深度学习 - 16.TF x Keras Losses 常见损失函数
一.引言:之前提到过自定义Loss与metrics,下面盘点下常用的损失函数供今后自定义损失函数使用。二.常见损失函数1. MAE 平均绝对误差 (mean-absolute error)pre为预测值,y为真实值,MAE为预测值与真实值差的绝对值之和# Mean Ablsolutely Errordef getMaeLoss(predict, label): loss = tf.reduce_mean(tf.losses.mean_absolute_error(..原创 2021-05-18 17:43:57 · 4504 阅读 · 0 评论 -
深度学习 - 15.TF x Keras WideAndDeep
一.引言Wide & Deep 模型的提出不仅结合了 Wide(线性模型)的记忆能力,同时结合了Deep(深度)的泛化能力,其在2016年由谷歌提出。记忆能力可以理解为模型直接学习历史数据的共现频率能力,结构简单也造成了原始数据很容易影响推算结果。泛化能力可以被理解为模型传递特征的相关性,以及挖掘稀疏甚至从未出现过的稀有特征的能力,矩阵分解能够优于协同过滤,就是因为加入了隐向量,丰富了稀疏特征的表示,Deep侧通过特征的多次自动组合,可以深度挖掘数据潜在的模式,即使是很稀疏的输入,也可以获取较为原创 2021-05-14 16:20:57 · 885 阅读 · 0 评论 -
深度学习 - 14.TF x Keras 共享层与共享模型
一.引言函数式 API 的重要特性是能够多次重复使用一个层实例,如果对一个层实例调用两次,而不是每次调用都实例化一个新层,那么每次调用就可以重复使用相同的权重。这样可以构建具有共享分支的模型。二.共享层权重1.模型结构假设模型判断两个句子的相似度,模型有两个输入,分别为句子A,句子B,并输出一个 0-1 的分数代表相似度。在这种前提下,句子AB是具备交换性的,即A与B的相似性应该与B与A的相似性是一致的,所以只需要用一个 LSTM 处理即可,其权重是根据两个输入共同学习的,模型也成为连.原创 2021-05-10 17:58:38 · 1632 阅读 · 0 评论 -
深度学习 - 13.TF x Keras Inception 模块
一.引言通过函数式 API,前面已经实现了多输入与多输出的模型,除此之外,函数式 API 还可以实现具有复杂内部拓扑结构的网络。 Keras 中的神经网络可以是层组成的有向无环图,无环代表图不能有循环,即张量 x 不能成为生成 x 的某一层的输入,但是允许循环连接,即循环层的内部循环。二.Inception1.模型结构Inception 是一种流行的卷积神经网络的架构类型,传统的深度卷积模型一味追求深度,虽然模型尺寸很大,但是对应的梯度消失,梯度爆炸,训练时间过长等问题还是比较明显,I.原创 2021-05-07 17:51:27 · 1283 阅读 · 0 评论 -
深度学习 - 12.TF x Keras 多输出模型
一.引言上一篇文章介绍了TensorFlow-Keras 多输入模型,利用相同的方法,还可以使用函数式 API 构建具有多个输出即多头的模型,一个简单的例子就是利用同一个数据,一次性预测某个体多个属性,例如输入某个用户的评论信息,预测该用户的社会属性比如年龄,收入,性别等等。二.多输出模型1.模型结构通过解析用户的评论信息,通过 Embedding 层进行文本向量化,随后利用 LSTM 进行处理,分别接入 Dense 层预测年龄,性别,收入,另外使用 GRU 预测用户的兴趣偏好,..原创 2021-05-07 10:39:54 · 3581 阅读 · 2 评论 -
深度学习 - 11.TF x Keras 多输入模型
一.引言函数式 API 可用于构建具有多个输入的模型,通常情况下,模型会在某一时刻用一个可以组合多个张量的层将不同输入得到的结果进行组合,组合方式可以是相加,连接等等,这其中常用的为 keras.layers.add, keras.layers.concatente 等。二.多输入模型1.模型结构典型的问答模型有两个输入:一个自然语言描述的问题和一个文本片段用于提供回答的相关信息,最后生成一个回答,这里回答只包含一个词,可以通过 softmax 得到。这里分别对参考文本 text .原创 2021-05-06 19:15:38 · 3497 阅读 · 10 评论 -
深度学习 - 10.TF x Keras 基于 CNN 与 RNN 的文本序列 - 温度预测问题
一.引言上一篇文章基础文本处理 processing && embedding介绍了常用的文本处理方法,趁热打铁了解一下处理连续文本的 demo 流程。二.数据信息与获取下面例子将用到气象记录站的天气时间序列,数据集中每10分钟记录14个不同的指标,包含气压,温度,湿度,风向等等环境相关的特征,这里采用 2009-2016 年的数据作为备选。1.源数据获取通过本地 terminal 输入如下命令,即可在对应 Downloads 文件夹下获取到原始数据。 ..原创 2021-04-29 16:51:48 · 2036 阅读 · 30 评论 -
深度学习 - 9.TF x Keras 基于 Processing 与 Embedding 的文本处理
一.引言:处理 IMDB 数据集 demo 时,用到了很多文本转 onehot,文本转 embedding 的方法,下面整理一下。本文后续样例测试数据集采用 IMDB 原始数据集,代表了用户对电影的评价,其中包含积极 positive 以及 消极 nagative 的评论:Working with one of the best Shakespeare sources, this film manages to be creditable to it's source, whilst stil原创 2021-04-27 18:12:57 · 1050 阅读 · 0 评论 -
深度学习 - 8.TF x Keras AutoEncoder 2D、3D 展示
一.引言:AutoEncoder-自编码是神经网络中常见的无监督学习,其目的一般为提取原始目标中的关键信息,类似于降维与主成分分析,但又不完全相同,其原理是用输入信息作为输出信息训练模型,最终提取中间的关键信息作为输入信息的抽象表达。二.实现:导入依赖:import numpy as npimport matplotlib.pyplot as pltfrom tensorflow.keras.datasets import mnistfrom tensorflow.keras.原创 2021-04-09 14:49:24 · 599 阅读 · 2 评论 -
Mac M1 踩坑之Tensorflow安装 && Processed finished with exit code 132
一.引言之前出过一期Mbp迁移至Mac Mini-M1的教程,使用期间主要使用java,无明显问题,今天尝试在pycharm使用tensorflow,安装conda后,import tf后无法执行,连print都不能用,好家伙原来M1还没支持的版本,情何以堪。于是开始求助于各路大神,好在终于解决了问题,下面铺下整个过程~二.修护步骤1.下载安装miniforgehttps://github.com/conda-forge/miniforge安装:在Termina...原创 2021-04-01 20:32:30 · 5591 阅读 · 23 评论 -
深度学习 - 7.TF x Keras expand_dim 扩充维度
应用场景:面对有时候需要对数据维度进行扩充,例如低维数据向转高维度或者不规则张量 ragged Tensor的填充,这时候就需要expand_dims登场、同时还有 tf.tile 和preprocessing.sequence.pad_sequences 帮忙。一.expand_dimstf.expand_dims 可以扩充数组维度,参数包括: array:需要扩充的数组,这里 tensor,np.array 或者 python.list 都可以 axis:需要扩充......原创 2020-10-23 15:57:48 · 7035 阅读 · 10 评论 -
深度学习 - 6.TF x Keras SoftMax 自定义实现
简介SoftMax 函数在深度学习中十分常见,多见于多分类概率问题,通过softmax可以将预测结果映射到0-1且保证概率之和为1。假设一个数组中包含n个元素,则对应位置k的softmax计算公式如下: Keras ApiTensorflow keras 提供了计算softmax的方法 tf.nn.softmax,可以直接调用: lo...原创 2020-10-14 21:32:41 · 794 阅读 · 0 评论 -
深度学习 - 5.TF x Keras 编写回调函数
一.回调函数概述1.回调函数的功能回调是一种强大的工具,可以在训练,评估或推理期间自定义Keras模型的行为。我们可以在不同时期实现不同功能的回调函数,例如每次训练的开始或结束,每轮epoch的开始或结束,每一批batch的开始或结束等,并实现以下行为:1.在训练过程中的不同时间点进行验证(除了内置的按时间段验证)2.定期或在超过特定精度阈值时对模型进行检查3.当训练似乎停滞不前时,更改模型的学习率4.当训练似乎停滞不前时,对顶层进行微调5.在训练结束或超出特定性能阈值时发送电子邮件或即原创 2020-10-09 17:24:49 · 1487 阅读 · 6 评论 -
深度学习 - 4.TF x Keras 训练时对样本和类别加权
模型训练中,如果希望模型更偏向某一类数据或更聚焦于某一批样本,可以采用对数据类别和数据加权的形式达到上述效果。keras 默认设置下,样本的权重取决于其在数据集中的频率,即原始样本的分布。有两种方法可以对数据进行加权,而与采样频率无关。Tips:如下代码为方便测试跑通准备,分别构建了深度模型并加载了手写数字识别数据,可以直接忽略看后面~ def get_uncompiled_model(): inputs = keras.Input(shape=(784,).原创 2020-09-30 16:29:18 · 6195 阅读 · 2 评论 -
深度学习 - 3.TF x Keras 常见参数初始化方法
上篇文章自定义 metrics 用到了 add_weights 方法,这个方法会初始化一个变量,维度不定。下面就常见的初始化方法,进行介绍。原创 2020-09-28 16:12:43 · 9802 阅读 · 7 评论 -
深度学习 - 2.TF x Keras 自定义 Loss 与 Metrics
上一篇利用 keras 实现了最基本的手写数字识别模型,模型编译时loss用到了交叉熵 sparse_categorical_crossentropy,metrics 针对稀疏多分类问题用到了 sparse_categorical_accuracy,这里 loss 和 metrics 也支持自己实现,只需要继承 keras.losses.Loss 和keras.metrics.Metric 类即可。Tips:首先导入需要用到的类,实现和上一篇Demo一样的模型结构,并且加载后面要用到的数据集。唯一的原创 2020-09-25 17:28:29 · 7784 阅读 · 0 评论 -
深度学习 - 1.TF x Keras Train And Evaluate Demo
TensorFLow Kears 使用 Train 以及 Evaluate,以下代码基于tensorflow 2.0 版本,Conda环境。Tips:需要提前导入的类import numpy as npimport tensorflow as tffrom tensorflow import kerasfrom tensorflow.keras import layers一.初始化model与训练Demo1.构建模型 def get_uncompiled_mod.原创 2020-09-24 18:05:43 · 756 阅读 · 1 评论 -
java.lang.NoSuchMethodError 之 依赖冲突解决方案
NoSuchMethodError 解决方案大全问题:本机测试环境运行无误,在服务器和别的jar包一起打包在一起运行报错,这种大概率为依赖冲突问题java.lang.NoSuchMethodError:com.google.protobuf.CodedInputStream.readStringRequireUtf8()Ljava/lang/String第一层:--> calass类名写错了解决方案:修改一下submit submit脚本的类名第二层:...原创 2020-06-05 15:27:17 · 10792 阅读 · 2 评论 -
Tensorflow-reduce_sum 函数 Axis 详解
编程过程中经常需要对数组进行处理,而sum又是经常需要用到的函数,sum函数传参时会用到axis参数,低维度还好,高维度经常容易混淆,本文基于TF,对数组sum时axis进行详解,即对哪个位置加,加完形状变什么样:Tip:tf只是用来调用生成结果,对axis的理解适合任意语言Sum首先明确axis的作用,axis参数是加和时用来固定的轴,也可以说是数学里的维度。常见的情形遇到的是...原创 2020-04-28 15:22:16 · 1306 阅读 · 0 评论