Tensorflow2.0 常用函数详解

1. tf.reduce_sum()


2.tf.equal()

equal,相等的意思。顾名思义,就是判断,x, y 是不是相等,它的判断方法不是整体判断,而是逐个元素进行判断,如果相等就是True,不相等,就是False。
张量之间 的比较

import tensorflow as tf
a = [[1,2,3],[4,5,6]]
b = [[1,0,3],[1,5,1]]
with tf.Session() as sess:
    print(sess.run(tf.equal(a,b)))

out:
[[ True False  True]
 [False  True False]]

3.enumerate

enumerate(sequence, [start=0]) 其中sequence是一个序列,迭代器或其他支持迭代的对象 start是下标起始位置 返回枚举对象 以下代码是使用enumerate的示例

 4.tf.nn.softmax(logits, axis=1)  和 tf.argmax

  • 作用:softmax函数的作用就是归一化。
  • 输入: 全连接层(往往是模型的最后一层)的值,一般代码中叫做logits
  • 输出: 归一化的值,含义是属于该位置的概率,

  tf.argmax: 根据axis取值的不同返回  相应轴上 最大值的索引
test = np.array([
[1, 2, 3],
 [2, 3, 4], 
 [5, 4, 3], 
 [8, 7, 2]])
np.argmax(test, 0)   #输出:array([3, 3, 1]
np.argmax(test, 1)   #输出:array([2, 2, 0, 0]
 

5.tf.cast()

cast(x, dtype, name=None)
  • 第一个参数 x:   待转换的数据(张量)
  • 第二个参数 dtype: 目标数据类型
  • 第三个参数 name: 可选参数,定义操作的名称


correct = tf.cast(tf.equal(pred, y), dtype=tf.int32) # tf.equal 张量之间d 比较

6.tf加载模型“AttributeError: ‘str‘ object has no attribute ‘decode‘ “

这个问题 网上也有教程 ,但是还是会有 有些小伙伴用了这个方法任然报错,部分原因如下
tf装在虚拟环境里的小伙伴,直接在命令行 pip install h5py==2.10 -i https://pypi.doubanio.com/simple  没有用的 ,因为这样更新的h5py 是在 anaconda下的,虚拟环境是独立的 ,需要 进入 虚拟环境后,再安装如下

 7.  model.compile()和model.fit()

model.compile() : model.compile()方法用于在配置训练方法时,告知训练时用的优化器、损失函数和准确率评测标准,如:
 model.compile(optimizer = 优化器,
                        loss = 损失函数,
                        metrics = ["准确率”])
model.fit(): model.fit()方法用于执行训练过程
fit( x=None, #输入的x值
     y=None, #输入的y标签值
     batch_size=None, #整数 ,每次梯度更新的样本数即批量大小。未指定,默认为32。
     epochs=1, #迭代次数
     verbose=1, #整数,代表以什么形式来展示日志状态
     callbacks=None, #回调函数,这个list中的回调函数将会在训练过程中的适当时机被调用,参考       回调函数
     validation_split=0.0, #浮点数0-1之间,用作验证集的训练数据的比例。模型将分出一部分不会        被训练的验证数据,并将在每一轮结束时评估这些验证数据的误差和任何其他模型指标。
     validation_data=None, #这个参数会覆盖 validation_split,即两个函数只能存在一个,它的输入为元组 (x_val,y_val),这作为验证数据。
     shuffle=True, #布尔值。是否在每轮迭代之前混洗数据
     class_weight=None,
     sample_weight=None, 
     initial_epoch=0, 
     steps_per_epoch=None, #一个epoch包含的步数(每一步是一个batch的数据送入),当使用如TensorFlow数据Tensor之类的输入张量进行训练时,默认的None代表自动分割,即数据集样本数/batch样本数。
     validation_steps=None, #在验证集上的step总数,仅当steps_per_epoch被指定时有用。
     validation_freq=1, #指使用验证集实施验证的频率。当等于1时代表每个epoch结束都验证一次
     max_queue_size=10,
     workers=1,
     use_multiprocessing=False
   )
实例如下:

network.compile(optimizer='adam',
              loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),
              metrics=['accuracy'])

network.fit(train_db, epochs=20, validation_data=test_db, validation_freq=2)

8.Dataset.from_tensor_slices()

对features数据包,labels数据包特征切片
实现features 与labels数据的一一配对

9.tf.squeeze()

squeeze(
    input,
    axis=None,
    name=None,
    squeeze_dims=None
)

 再看一个例子:

#  't' 是一个维度是[1, 2, 1, 3, 1, 1]的张量
tf.shape(tf.squeeze(t))   # [2, 3], 默认删除所有为1的维度
 
# 't' 是一个维度[1, 2, 1, 3, 1, 1]的张量
tf.shape(tf.squeeze(t, [2, 4]))  # [1, 2, 3, 1],标号从零开始,只删掉了2和4维的1

10.model.evaluate() 和 model.predict()

model.evaluate输入数据(data)和标签(label),输出损失和精确度.
model.predict输入数据(data),输出预测结果
loss,accuracy = model.evaluate(X_test,Y_test)
y_pred = model.predict(X_test,batch_size = 1)

11.张量的维度

xx = tf.random.normal([2, 3, 4], dtype=tf.float32)
out:

张量的维度 比如3维张量 shape=(2,3,4),从外往里读 这个三维张量包括2个二维张量,每个张量包括3个一维张量,每个一维张量深度为4
axis=0 到 2 表示从外到里 axis=-1 默认最里面一

 12. tf.Variable()

变量初始化


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值