# 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)