1.  tensorflow的安装

在【Anaconda Prompt】中输入【anaconda search -t conda tensorflow】,它帮我们找到可以安装的什么样的tensorflow, 需要注意查看version版本& platform平台;选择合适的版本再输入【anaconda show  ......】,其中 ......为tensorflow版本,这个show会查找出安装tensorflow需要什么样的命令,把显示的命令直接复制粘贴,再回车,就开始了安装tensorflow.

或者用【pip install tensorflow】,或者【conda install tensorflow】

   2. 导入tensorflow,求解y=w*x的值

 在tensorflow中,最好用float32,否则容易出现各种未知错误。

import tensorflow as tf
a = 3
# Create a variable.给变量找到位置,除此外还要session
w = tf.Variable([[0.5,1.0]])
x = tf.Variable([[2.0],[1.0]]) 

y = tf.matmul(w, x)  #y是一个操作,求矩阵的乘积

#variables have to be explicitly initialized before you can run Ops
#先创建一个session,其中 包含w,x,再实例化
init_op = tf.global_variables_initializer() #全局初始化
with tf.Session() as sess:  #构造计算域
    sess.run(init_op)      
    print (y.eval()) #输出y值,在tensorflow打印结果时,要加.eval()

3.常量值函数

tensorflow中的dtype类型有: float32, float64, int8, int16, int32, int64, uint8以及complex64.

tensorflow的基本操作很像numpy, 比如Tensors的生成常量值的函数:

 tf.zeros(shape, dtype=tf.float32, name=None) 

 返回一个类型为dtype,并且维度为shape的tensor,并且所有的参数均为0.name是该操作的一个别名(可选的).

 不能直接使用数字作为shape的参数

... 
这是两个错误案例
# shape不能为int类型,需要指定为tensor shape类型 
data = tf.zeros(1, dtype=tf.int32) 
p.printValue("tf.zeros(1, dtype=tf.int32)", data) 
...
#对应的解决方法
data = tf.zeros([1], dtype=tf.int32)
p.printValue("tf.zeros([1], dtype=tf.int32)", data)

 tf.zeros_like(tensor, dtype=None, name=None) 

    创建一个所有参数均为0的tensor对象,该方法在参数赋值并置0的时候非常有用。

# 'tensor' is [[1, 2, 3], [4, 5, 6]]
#zeros_like()构造一个维度与tensor一致的,并且初始化为全0的tensor
tf.zeros_like(tensor) ==> [[0, 0, 0], [0, 0, 0]]

tf.ones(shape, dtype=tf.float32, name=None)

创建一个所有的参数都为1,并且维度为shape的tensor对象

tf.ones_like(tensor, dtype=None, name=None)

 创建一个所有参数均为1的tensor对象

tf.fill(dims, value, name=None)

创建一个维度为dims,值为value的tensor对象,dims是类型为int32的tensor对象

value为0时,该方法等同于tf.zeros();当value为1时,该方法等同于tf.ones()

tf.ones([2, 3], int32) ==> [[1, 1, 1], [1, 1, 1]]

# 'tensor' is [[1, 2, 3], [4, 5, 6]]
tf.ones_like(tensor) ==> [[1, 1, 1], [1, 1, 1]]

# Constant 1-D Tensor populated with value list.
tensor = tf.constant([1, 2, 3, 4, 5, 6, 7]) => [1 2 3 4 5 6 7]

# Constant 2-D tensor populated with scalar value -1.
tensor = tf.constant(-1.0, shape=[2, 3]) => [[-1. -1. -1.]
                                              [-1. -1. -1.]]

tf.constant(value, dtype=None, shape=None, name='Const')

   创建一个值为value、形状为shape的常量tensor。

   value可以是一个数或一个list。  如果是一个数,那么这个常量中所有值的按该数来赋值。  如果是list,那么len(value)一定要小于等于shape展开后的长度。赋值时,先将value中的值逐个存入。不够的部分,则全部存入value的最后一个值。

a = tf.constant(2,shape=[2])
b = tf.constant(2,shape=[2,2])
c = tf.constant([1,2,3],shape=[6])
d = tf.constant([1,2,3],shape=[3,2])
 
sess = tf.InteractiveSession()
print(sess.run(a))
#[2 2]
print(sess.run(b))
#[[2 2]
# [2 2]]
print(sess.run(c))
#[1 2 3 3 3 3]
print(sess.run(d))
#[[1 2]
# [3 3]
# [3 3]]

 tf.linspace(start, limit, num)

     生成一个从start 到limit 的等间隔的num个数

tf.range(start, limit, delta)

生成一个从start 到limit 的步长为delta的数

tf.linspace(10.0, 12.0, 3, name="linspace") => [ 10.0  11.0  12.0]

# 'start' is 3 ,'limit' is 18,'delta' is 3
tf.range(start, limit, delta) ==> [3, 6, 9, 12, 15]

4. 生成随机数与Shuffle操作:同numpy

Shuffle可用于打乱数据

norm = tf.random_normal([2, 3], mean=-1, stddev=4)
#[[-0.30886292  3.11809683  3.29861784]
 #[-7.09597015 -1.89811802  1.75282788]]
#洗牌,打乱数据
# Shuffle the first dimension of a tensor 
c = tf.constant([[1, 2], [3, 4], [5, 6]])
shuff = tf.random_shuffle(c)

# Each time we run these ops, different results are generated
sess = tf.Session() #用with结构更规范
print (sess.run(norm)) 
print (sess.run(shuff))
#[[3 4]
# [5 6]
# [1 2]]