Tensorflow--Variable对象

# coding: utf-8

# In[1]:

import tensorflow as tf

# In[2]:

my_var = tf.Variable(3,name="my_variable")

# In[3]:

add = tf.add(5,my_var)

# In[4]:

mul = tf.mul(8,my_var)

# In[6]:

#2*2的零矩阵

zeros = tf.zeros([2,2])

# In[7]:

#长度为6的全1向量

ones = tf.ones([6])

# In[8]:

#3*3*3的张量 其元素服从0-10的均匀分布

uniform = tf.random_uniform([3,3,3],minval=0,maxval=10)

# In[9]:

#3*3*3的张量,其元素服从0均值,标准差为2的正态分布

normal = tf.random_normal([3,3,3],mean=0.0,stddev=2.0)

# In[10]:

zeros

# In[11]:

ones

# In[12]:

uniform

# In[13]:

normal

# In[14]:

#tf.truncated_normal()创建任何偏离均值超过2倍标准差的值

#该Tensor对象不会返回任何小于3.0或者大于7.0的值

trunc = tf.truncated_normal([2,2],mean=5.0,stddev=1.0)

# In[15]:

#默认均值为0,默认标准差为1.0

random_var = tf.Variable(tf.truncated_normal([2,2]))

# In[16]:

#-----Variable对象的初始化-----

init = tf.initialize_all_variables()

sess = tf.Session()

sess.run(init)

# In[17]:

var1 = tf.Variable(0,name="initialize_me")

var2 = tf.Variable(1,name="no_initialization")

init = tf.initialize_variables([var1],name="init_var1")#这个可以接受一个Variable对象列表

# In[18]:

sess.run(init)

# In[19]:

#--------Variable对象的修改------

my_var = tf.Variable(1)

# In[20]:

#创建一个OP,使其在每次运行时都将该Variable对象乘以2

my_var_times_two = my_var.assign(my_var*2)

# In[21]:

init = tf.initialize_all_variables()

# In[22]:

sess = tf.Session()

# In[23]:

sess.run(init)

# In[24]:

sess.run(my_var_times_two)## out : 2

# In[25]:

sess.run(my_var_times_two)## out : 4

# In[26]:

sess.run(my_var_times_two)##out : 8

# In[27]:

sess.run(my_var.assign_add(1))#自增1 ##out:9

# In[28]:

sess.run(my_var.assign_sub(1))#自减1 ##OUT : 8

# In[29]:

my_var = tf.Variable(0)

# In[30]:

init = tf.initialize_all_variables()

# In[31]:

sess1 = tf.Session()

# In[32]:

sess2 = tf.Session()

# In[33]:

sess1.run(init)

# In[34]:

sess1.run(my_var.assign_add(5))##out: 5

# In[35]:

sess2.run(init)

# In[36]:

sess2.run(my_var.assign_add(2))##out: 2

# In[37]:

#说明在不同的Session()对象中独立地对Variable对象的值实施自增

# In[38]:

#如果希望对所有的Variable对象的值重置为初始值,只需再次调用tf.initalize_all_variables()

#如果只是希望对部分的Variable对象重新初始化,可以调用tf.initialize_variables()

# In[39]:

my_var = tf.Variable(0)

# In[40]:

init = tf.initialize_all_variables()

# In[41]:

sess = tf.Session()

# In[42]:

sess.run(init)

# In[43]:#####

sess.run(my_var.assign(10))

# In[44]:

sess.run(init)

# In[45]:

#不允许使用Optimizer类时,可在创建这些Variable对象时将trainable参数设为False:

#对于迭代器或其他任何不涉及机器学习模型计算的Variable对象都需要这么设置

# In[46]:

not_trainable = tf.Variable(0,trainable=False)

你可能感兴趣的:(Tensorflow--Variable对象)