tensorflow-基础函数之常用函数总结

本文主要把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是否每个元素都相等。返回一个格式为booltensor
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)))

猜你喜欢

转载自blog.csdn.net/qq_18603599/article/details/80595752