axis=0 按列展开;axis=1 按行展开;
tf.cast(x,dtype) dtype指明类型;函数用来强制转换类型;
tf.reduce_min(张量名) 找张量维度上的最小值。
tf.Gtf.GradientTape()
train_db = tf.data.Dataset.from_tensor_slices((train_data, train_label)).batch(32)
只有TensorFlow的变量才能自我更新,使用如下:
w = tf.Variable(张量)
w.assign_sub(同样形状张量)
梯度计算
import tensorflow as tf
x = tf.Variable([1,2,3],dtype=tf.float32)
y = tf.Variable([4,5,6],dtype=tf.float32)
print(id(x))
#x.assign_add(y)
x= x+y
print(id(x),end='')
print(x)
#x=x+y两者id(x)不同说明x新开了内存;
#x.assign_sub(y)不会新开内存
可以直接把numpy的数组当做张量转型,
这上面就是演示。
但是上边就只能对tf的常量进行转化成numpy;
tf.convert_to_tensor()是将各种python里边用到的值进行转换,转换成张量对象,能够接受列表,元组,numpy对象以及标量数据。
tf.reshape()改变的张量的形状而不是数据类型和tf.cast()不一样。
求梯度:
自动梯度是tf的好把戏,
with tf.GradientTape() as t:
t.watch(x)
y= 2*tf.matmul(tf.transpose(x),x)
dy_dx = t.gradient(y,x)