Tensorflow程序中常见API

import tensorflow as tf
import numpy as np

#生成一个形状为100的一维数组
np.random.rand(100)

#生成一个形状为100的一维数组,数据类型转换为float32
np.random.rand(100).astype(np.float32)

#均匀分布随机数组成的向量(1,),每个元素的取值范围-1.0到1.0,
tf.random_uniform([1], -1.0, 1.0)

#元素为全零向量(1,)
tf.zeros([1])

#定义图的变量
tf.Variable

#计算平方
tf.square(y - y_data)

#按照某个维度求平均值
tf.reduce_mean

#学习率为0.3的梯度下降优化器
tf.train.GradientDescentOptimizer(0.5)

#根据选择的优化器和学习速率,最优化损失函数,梯度迭代
tf.train.GradientDescentOptimizer(0.5).minimize(loss)

#用tf.global_variables_initializer() 替代 tf.initialize_all_variables(),变量初始化
tf.initialize_all_variables()

#创建tf会话
tf.Session()

#通过会话运行动作
sess.run(init)

#常量向量
matrix1 = tf.constant([[3, 3]])
matrix2 = tf.constant([[1]
, [2]])

#向量相乘,点积
product = tf.matmul(matrix1, matrix2) # matrix multiply,same as np.dot(matrix1, matrix2)

np.arange()函数分为一个参数,两个参数,三个参数三种情况
1)一个参数时,参数值为终点,起点取默认值0,步长取默认值1。
2)两个参数时,第一个参数为起点,第二个参数为终点,步长取默认值1。
3)三个参数时,第一个参数为起点,第二个参数为终点,第三个参数为步长。其中步长支持小数。
x = np.arange(-200, -100, 1)
y = np.arange(-5, 5, 0.1)
np.zeros(shape, dtype=float, order=’C’)
np.zeros((5, 5))

语法:X,Y = numpy.meshgrid(x, y)
输入的x,y,就是网格点的横纵坐标列向量(非矩阵)
输出的X,Y,就是坐标矩阵。
x = np.arange(1,5,1)
y = np.arange(6,10, 1)
X, Y = np.meshgrid(x, y)
X
array([[1, 2, 3, 4],
[1, 2, 3, 4],
[1, 2, 3, 4],
[1, 2, 3, 4]])
Y
array([[6, 6, 6, 6],
[7, 7, 7, 7],
[8, 8, 8, 8],
[9, 9, 9, 9]])

#tf.InteractiveSession()默认自己就是用户要操作的会话(session),而tf.Session()没有这个默认
sess = tf.InteractiveSession()

#应该理解为压缩求和,用于降维, axis=0按列求和压缩行,axis=1按行求和压缩列
t1 = [[1, 2, 3], [4, 5, 6]]
result = tf.reduce_sum(t1, axis=1)

#拼接张量,axis=0 代表在第0个维度拼接,axis=1 代表在第1个维度拼接
con0 = tf.concat(t1, t2, axis=0)

#tf.nn.embedding_lookup函数的用法主要是选取一个张量里面索引对应的元素。tf.nn.embedding_lookup(params, ids):params可以是张量也可以是数组等,id就是对应的索引
import tensorflow as tf
p = tf.Variable(tf.random_normal([10, 1])) #生成10*1的张量
b = tf.nn.embedding_lookup(p, [1, 3])#查找张量中的序号为1和3的
with tf.Session() as sess:
sess.run(tf.global_variables_initializer())
print(sess.run(b))
print(sess.run(p))
print(p)
print(type(p))

#tf.argmax是tensorflow用numpy的np.argmax实现的,它能给出某个tensor对象在某一维上的其数据最大值所在的索引值,tf.argmax()函数中有个axis参数(轴),该参数能指定按照哪个维度计算。如 在矩阵的结构中,axis可被设置为0或1,分别表示0:按列计算,1:行算
p = [[1, 2, 3], [4, 5, 6]]
with tf.Session() as sess:
print(sess.run(tf.argmax(p, axis=0))) # [1 1 1]
print(sess.run(tf.argmax(p, axis=1)))#[2 2]

坚持原创技术分享,您的支持将鼓励我继续创作!