concat:+
条件:维数必须相当,且除了要合并的维度之外,其他维度的数据相等
tf.splitsplit:-
tf.stack([a, b], axis=0)stack:+
stack:create new dim,可以增加维度(大维度)进行合并
tf.unstackunstack:-
数据统计 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, argsorttf.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
填充与复制 padtf.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_valuetf.maximum(a, 2) tf.minimum(a, 8) tf.clip_by_value(a, 2, 8) # 把上面那两个的活都干了
.maximum方法制定下限,.minimum 方法制定上限,若想同时制定上下限,可以结合两个方法使用,当然也可以用.clip_by_value()方法直接指定
relutf.nn.relu(a)
relu函数就不多讲了
clip_by_normtf.clip_by_norm()
方法通过限制Tensor的2-范数,来限幅
gradient clipping为了防止发生梯度爆炸和梯度消失的现象,对梯度进行限幅
new_grads, total_norm = tf.clip_by_global_norm(grads, 25)
未限幅之前
限幅之后
高阶OP wherewhere(cond, A, B)
这个方法可以将A与B结合在一起,mask中为True的位置放入A中对应位置的数据,为False的位置放入B中对应位置的数据
总结一下,where方法需要一个bool类型的Tensor,用于将bool类型中True的位置找到
scatter_nd一个示意图
将updates中的数据以indices放入到output中,shape为8(此例)
meshgridmeshgrid方法可以将坐标的points_x 与 points_y 分别放到两个矩阵中
points_x, points_y = tf.meshgrid(x, y)
可以通过stack方法将两个矩阵合并在一起,axis=2,也就是在第3个维度上进行合并,这样可以把x与y在对应位置处的坐标合并在一起,clever!
数据集加载 keras.datasetsMNIST数据集
CIFAR10/100
tf.data.Dataset.from_tensor_slices().shuffle
.map
.batch
.repeat()
For example
测试(张量)实战 Acc. 全连接层 Fully connected layer Multi-LayerSequential
输出方式 sigmoidtf.sigmoid
softmaxsoftmax的作用是让得到的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并没有默认这个参数,但是这个参数确实一定要添加的



