TF2.1学习

TF常见函数:

创建一个张量:tf.constant(张量内容,dtype=数据类型)

将numpy格式转为tensor:tf.convert_to_tensor(数据名,dtype=数据类型)

创建全为0的张量:tf.zeros(维度)

创建全为1的张量:tf.ones(维度)

创建全为指定值的张量:tf.fill(维度,指定值)

生成正态分布的随机数:tf.random.normal(维度,均值mean,标准差stddev)

生成截断式正态分布随机数:tf.random.truncated_normal(维度,均值mean,标准差stddev)随机数均在(\mu-2\sigma,\mu+2\sigma )

生成均匀分布随机数:tf.random.uniform(维度,minval=最小值,maxval=最大值)

强制类型转换:tf.cast(张量名,dtype=数据类型)

计算元素的最小值:tf.reduce_min(张量名)

计算元素的最大值:tf.reduce_max(张量名)

axis=0代表按照纵向计算,axis=1代表按横向计算。

计算平均值:tf.reduce_mean(张量,axis=操作维度)

计算和:tf.reduce_sum(张量,axis=操作维度)

将变量标记为可训练:tf.Variable()

数学四则运算:tf.add(),tf.subtract(),tf.multiply(),tf.divide()

平方,次方,开方运算:tf.square(),tf.pow(),tf.sqrt()

矩阵乘:tf.matmul()

将输入特征和标签对应:tf.data.Dataset.from_tensor_slides(输入特征,标签)

计算梯度:tf.GradientTape.gradient(函数,求导变量)

独热码:tf.one_hot(待转换数据,分类维度)(用于分类问题)

softmax函数:tf.nn.softmax()

自减操作:assign_sub()

返回张量沿指定维度最大值的下标号:tf.argmax(张量,axis)

条件语句真返回A,条件语句假返回B:tf.where(条件语句,真返回A,假返回B)

返回[0,1)之间的随机数:np.random.RandomState.ran(维度)

将两个数组垂直叠加:np.vstack()

返回一个数组np.mgrid(起始值:结束值:步长)

x.ravel()将x数组变为一维数组

np.c_[数组1,数组2]使返回的间隔数值点配对

mse:tf.reduce_mean(tf.square(y-\hat{y}))

交叉熵损失函数:tf.losses.categorical_crossentropy(y,\hat{y})

softmax和交叉熵结合:tf.nn.softmax_cross_entropy_with_logits(y,\hat{y})

l2正则化:tf.nn.l2_loss(参数)

.reshape(1,-1)转化为一行,reshape(2,-1)转化为两行,reshape(-1,1)转化为一列,reshape(-1,2)转化为两列

model=tf.keras.models.Sequential([网络结构])

网络结构:拉直层:tf.keras.layers.Flatten(),全连接层:tf.keras.layers.Dense(神经元个数,activation=激活函数(eg:relu,softmax.sigmoid,tanh),kernel_regularizer=正则化(eg:tf.keras.regularizers.l1()),卷积层:tf.keras.layers.Conv2D(filters=卷积核个数,kernel_size=卷积核尺寸,strides=卷积步长,padding=“vaild”or"sam"),LSTM:tf.keras.layers.LSTM()

model.compile(optimizer=优化器,loss=损失函数,metrics=["准确率"])

model.fit(训练集的输入特征,训练集标签,batch_size=,epochs=,validation_data=(测试集的输入特征,测试集的标签),validation_split=从训练集划分多少给测试集,validation_freq=多少次epoch训练一次)

model.summary() 

读取模型:load_weights(路径文件名)

保存模型:tf.keras.callbacks.ModelCheckpoint(filepath=文件路径名,save_weights_only=True/False,save_best_only=True/False) history=model.fit(callbacks=[cp_callback])

返回模型中可训练的参数:model.trainable_variables

设置print函数输出格式:np.set_printoptions(threshold=np.inf)超过threshold则打印信息被省略号替代,np.inf代表为无限大。

卷积计算是一种有效的图像特征提取方法:输入特征图的深度决定了当前层卷积核的深度,当前层卷积核的个数决定了当前层输出特征图的深度

感受野:卷积神经网络各输出特征图中每个像素点,在原始图片上映射区域的大小

如果不想因为卷积改变输入特征图的尺寸,可以采用全0填充(即在输入特征图周围填充全0,padding=SAME)

 tf描述卷积层:tf.keras.layers.Conv2D(filters=卷积核个数,kernel_size=卷积核尺寸,strides=滑动步长,padding=same/valid,activation=“relu,sigmoid”,input_shape=(高,宽,通道数))

批标准化一般在卷积层和激活层之间:tf.keras.layers.BatchNormalization() 

池化用于减少特征数据量:最大池化可提取图片纹理(tf.keras.layers.MaxPool2D(pool_size=池化核尺寸,strides=池化步长,padding=valid/same)),均值池化可保留背景特征(tf.keras.layers.AveragePooling2D(pool_size=池化核尺寸,strides=池化步长,padding=valid/same))

舍弃:在训练时将一部分神经元舍弃tf.keras.layers.Dropout(舍弃的概率)

tf.concat():拼接张量的函数

t1 = [[1, 2, 3], [4, 5, 6]]
t2 = [[7, 8, 9], [10, 11, 12]]
tf.concat([t1, t2], 0)  # [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]]
tf.concat([t1, t2], 1)  # [[1, 2, 3, 7, 8, 9], [4, 5, 6, 10, 11, 12]]
# tensor t3 with shape [2, 3]
# tensor t4 with shape [2, 3]
tf.shape(tf.concat([t3, t4], 0))  # [4, 3]
tf.shape(tf.concat([t3, t4], 1))  # [2, 6]

循环核:参数时间共享,循环层提取时间信息

embedding:单词编码方法,tf.keras.layers.Embedding(词汇表大小,编码维度)入Embedding时,x_train维度:[送入样本数,循环核时间展开步数]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值