本文主要把tensorflow编程中,使用最高的相关函数做了个简单的汇总,方便日后学习查找!
# -*- coding: utf-8 -*- import tensorflow as tf session = tf.InteractiveSession() # 创建常量 constant1 = tf.constant(2,tf.int32,[2,3]) constant2 = tf.constant(value=[1,2],dtype=tf.int32,shape=[2,3]) print(session.run(constant2)) # 用于生成随机数tensor ''' random_normal:正太分布随机数,均值mean,标准差stddev truncated_norma:截断正态分布随机数,均值mean,标准差stddev random_uniform:均匀分布随机数,范围为[minval,maxval] ''' random_normal = tf.random_normal(shape=[2,2],mean=0,stddev=0.1,seed=1) print(session.run(random_normal)) print() truncated_normal = tf.truncated_normal(shape=[2,2],stddev=0.1,seed=2) print(session.run(truncated_normal)) print() random_uniform = tf.random_uniform(shape=[2,3],minval=1,maxval=2) print(session.run(random_uniform)) print() # 返回张量信息 label=[[1, 2, 3], [4, 5, 6]] shape = tf.shape(label) print(session.run(shape))#=>[2 3] # 矩阵生成 one = tf.ones(shape=[2,3]) print(session.run(one))# =>产生的都是为1 print() zero = tf.zeros(shape=[2,3]) print(session.run(zero))#=>产生的都是0 print() fill = tf.fill(dims=[2,3],value=3) print(session.run(fill)) print() # 为张量+1维 本来是1维 会变2维 本来是2维的会变为3维 tensor = [[1,3],[4,5]] expand = tf.expand_dims(tensor,1) print(session.run(expand)) print() # 将张量沿着指定维数拼接起来 axis =0 代表按行拼接 1 代表按列拼接 t1 = [[1, 2, 3], [4, 5, 6]] t2 = [[7, 8, 9], [10, 11, 12]] conact = tf.concat([t1, t2],0) print(session.run(conact)) print() #沿着value的第一维进行随机重新排列 a=[[1,2],[3,4],[5,6]] x = tf.random_shuffle(a) print(session.run(x)) # 找到给定的张量tensor中在指定轴axis上的最大值/最小值的位置。 a=tf.get_variable(name='a', shape=[3,4], dtype=tf.float32, initializer=tf.random_uniform_initializer(minval=-1,maxval=1)) b=tf.argmax(input=a,dimension=0) session.run(tf.global_variables_initializer()) print(session.run(b)) # 断两个tensor是否每个元素都相等。返回一个格式为bool的tensor x =[1] y =[1] falg = tf.equal(x,y) print(session.run(falg)) print() # x的数据格式转化成dtype a = tf.Variable([1,0,0,1,1]) b = tf.cast(a,dtype=tf.bool) session.run(tf.initialize_all_variables()) print(session.run(b)) print() # 就是将tensor按照新的shape重新排列 # shape 不能随便写 需要有一定的对应关系 input = [1,3,4,6] reshape = tf.reshape(input,shape=[2,2]) print(session.run(reshape)) print() # where + greater # 第一个选择条件根据,当选择条件为True时,会选择第二个参数中的值,否则使用第三个参数中的值 # 是每个元素都会对比的 v1 = tf.constant([1., 2., 3., 4.]) v2 = tf.constant([4., 3., 2., 1.]) f = tf.greater(v1, v2) f.eval() where = tf.where(f,v1,v2) print(session.run(where)) print() #greater+where+equals+cast组合使用 input1 = [1,3,4] input2 = [2,3,4] print(session.run(tf.greater(input1,input2))) print(session.run(tf.cast(tf.equal(input1,input2),dtype=tf.bool))) print() #返回最大值对应的下标 x = [1,3,4] print(session.run(tf.argmax(x,0)))