栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

TensorFlow高级操作

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

TensorFlow高级操作

合并与分割 tf.concat([a, b], axis=0)

concat:+

条件:维数必须相当,且除了要合并的维度之外,其他维度的数据相等

tf.split

split:-

tf.stack([a, b], axis=0)

stack:+

stack:create new dim,可以增加维度(大维度)进行合并

tf.unstack

unstack:-

数据统计 tf.norm(a)

范数计算:

L1 Norm

**tf.norm(b, ord=1, axis=1)**

tf.reduce_min/max
tf.reduce_min(a)
tf.reduce_max(a)
tf.reduce_mean(a)
tf.reduce_sum(a)

tf.argmax/argmin
tf.argmax(a)

tf.equal(a, b)

应用:计算Accuracy

tf.unique(a)

张量排序 Sort, argsort
tf.sort(a, direction='DESCENDING')
tf.argsort(a, direction='DESCENDING')

.shuffle 和 .argsort 方法结合后使用 .gather 方法,相当于直接使用 .sort 方法

Topk

只会返回 top-k的值和索引

tf.math.top_k(a, 2)
# 返回每一行top-2的数值和位置索引

Top-5 Acc.

Top-k accuracy

填充与复制 pad

tf.pad(a, [[1, 0], [0, 0]])

pad方法默认填充0,很直观的方法:两个中括号代表a是二维的,里层的中括号[1, 0]代表在axis=0维度的两端(在这里代表上端和下端)上端填充一行,下端不填充,如果写[2, 0]就是上端填充两行,下端不填充;第二个中括号表示在axis=1这个轴上不进行填充

给出一个对图像进行padding的例子

padding在卷积层经常会使用,因为卷积后的图像大小通常比原图像要小,所以为了使得卷积后的图像大小与原图像大小相等,就需要在进行卷积之前把原图像四周扩大一点

tf.tile(a, [1, 2])

tf.tile(a, [1, 2])表示:将a的axis=0轴变为原来的1倍,将axis=1轴变为原来的2倍,也就是将a的列复制一遍

张量限幅 clip_by_value

tf.maximum(a, 2)
tf.minimum(a, 8)
tf.clip_by_value(a, 2, 8)  # 把上面那两个的活都干了

.maximum方法制定下限,.minimum 方法制定上限,若想同时制定上下限,可以结合两个方法使用,当然也可以用.clip_by_value()方法直接指定

relu

tf.nn.relu(a)

relu函数就不多讲了

clip_by_norm

tf.clip_by_norm()

方法通过限制Tensor的2-范数,来限幅

gradient clipping

为了防止发生梯度爆炸和梯度消失的现象,对梯度进行限幅

new_grads, total_norm = tf.clip_by_global_norm(grads, 25)

未限幅之前

限幅之后

高阶OP where

where(cond, A, B)

这个方法可以将A与B结合在一起,mask中为True的位置放入A中对应位置的数据,为False的位置放入B中对应位置的数据

总结一下,where方法需要一个bool类型的Tensor,用于将bool类型中True的位置找到

scatter_nd

一个示意图

将updates中的数据以indices放入到output中,shape为8(此例)

meshgrid

meshgrid方法可以将坐标的points_x 与 points_y 分别放到两个矩阵中

points_x, points_y = tf.meshgrid(x, y)

可以通过stack方法将两个矩阵合并在一起,axis=2,也就是在第3个维度上进行合并,这样可以把x与y在对应位置处的坐标合并在一起,clever!

数据集加载 keras.datasets

MNIST数据集

CIFAR10/100

tf.data.Dataset.from_tensor_slices()

.shuffle

.map

.batch

.repeat()

For example

测试(张量)实战 Acc.

全连接层 Fully connected layer

Multi-Layer

Sequential

输出方式 sigmoid

tf.sigmoid

softmax

softmax的作用是让得到的Scores的总和等于1

tf.nn.softmax(logits, axis=1)
损失函数 MSE

Cross Entropy Loss

lower entropy ⇒ more certainty

tf.losses.categorical_crossentropy(y, prob)

这里的criteon就是实例化后的 tf.losses.BinaryCrossentropy()

Numerical Stability,数值不稳定情况

注意标红的地方一定要添加上,因为TensorFlow并没有默认这个参数,但是这个参数确实一定要添加的

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/326060.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号