TensorFlow之slim

TensorFlow之slim,第1张

结果:你会发现第一个输出与第三个一致,第二个输出和第四个一致

reduce_sum 是 tensor 内部求和的工具。其参数中:

其实在reduce_sum()中,是从维度上去考虑的(感觉这个Matlab中数据的概念比较像)

调用 reduce_sum(arg1, arg2) 时,参数 arg1 即为要求和的数据, arg2 有两个取值分别为 0 和 1 ,通常用 reduction_indices=[0] 或 reduction_indices=[1] 来传递参数。从上图可以看出,当 arg2 = 0 时,是纵向对矩阵求和,原来矩阵有几列就得到几个值;相似地,当 arg2 = 1 时,是横向对矩阵求和;当省略 arg2 参数时,默认对矩阵所有元素进行求和。

在 reduce_sum() 中就是按照求和的方式对矩阵降维。

计算张量的各个维度上的元素的平均值。

l2_loss一般用于优化目标函数中的正则项,防止参数太多复杂容易过拟合(所谓的过拟合问题是指当一个模型很复杂时,它可以很好的“记忆”每一个训练数据中的随机噪声的部分而忘记了要去“学习”训练数据中通用的趋势)

结果输出:

70

计算的过程:

题外话

正则化的基本思想是向损失函数添加一个惩罚项用于惩罚大的权重,隐式地减少自由参数的数量,所以可以达到d性地适用不同数据量训练的要求而不产生过拟合的问题。

正则化方法是将惩罚因子加入到各层的参数或激活函数中。其实现位置通常是在模型的optimization里,在计算损失函数时将该惩罚因子加进去。

( >

基本使用 使用 TensorFlow, 你必须明白 TensorFlow: 使用图 (graph) 来表示计算任务 在被称之为 会话 (Session) 的上下文 (context) 中执行图 使用 tensor 表示数据 通过 变量 (Variable) 维护状态 使用 feed 和 fetch 可以为任意的 *** 作

tensor就是容纳推理框架中间数据的一个数据结构,常用的有关函数如下:

这其中第一个参数是tensor的维度信息,第二个参数是是否指定数据指针,第三个参数是数据在内存中的排布信息,如果是CAFFE证明是NCHW类型,如果是TENSORFLOW证明是NHWC类型,默认的类型是TENSORFLOW类型,这里经常会有一些坑,比如最终想要得到一个1 3 10241024的数据时候,如果没有指定是CAFFE类型的数据排布,而是使用默认的情况(TENSORFLOW),读出来的数据channel维度就在最后。

得到各种维度和长度:

得到shape向量和数据总数:

得到数据指针:

Interpreter就是一个MNN的从模型得到的一个网络,有关Interpreter的tenosr *** 作,肯定就是涉及到输入的tesnor和输出的tensor的设置,由于可能在不同的设备上运行,因此可能有内存拷贝的 *** 作。

获取Interpreter的输入tensor:

获取Interpreter的输出tensor:

将host的tensor数据拷贝给Interpreter的tensor

将Interpreter的tensor数据拷贝给host tensor

以上就是关于TensorFlow之slim全部的内容,包括:TensorFlow之slim、轻松体验TensorFlow 第一个神经网络:基本分类(Part 1)、Tensorflow Serving 初探等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9618660.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存