a = tf.constant([1, 2], name="a")
b = tf.constant([2, 3], name="b")
result = a+b
gpu_options= tf.GPUOptions(per_process_gpu_memory_fraction=0.333)# 设置占用内存量
sess = tf.Session(config=tf.ConfigProto(gpu_options=gpu_options))
sess = tf.Session()
print(sess.run(result))# 此时才真正完成运算
或另一种表达方式:
with tf.Session() as sess:# 这种方式会自动释放计算机资源
sess.run(result)
1.1,tf.random_normal创建随机生成函数tf.Variable()
w1 = tf.Variable(tf.random_normal((2,3),stddev=1,seed=1))
w2 = tf.Variable(tf.random_normal((3,1),stddev=1,seed=1))
1.2,定义输入特征向量 x=tf.placeholder(tf.float32,shape=(1,2),name=“input”)
# 指定变量
# x = tf.constant([[0.7,0.9]])
# 占位变量机制
x=tf.placeholder(tf.float32,shape=(1,2),name="input")
1.3,向前传播
a = tf.matmul(x,w1)
y = tf.matmul(a,w2)# 矩阵乘
sess = tf.Session()
""" sess.run(y)不能直接运行,因为w1,w2还没有初始化"""
#sess.run(w1.initializer)
#sess.run(w2.initializer)
"""以上可用以下代替"""
init_op = tf.global_variables_initializer()
sess.run(init_op)
# 若用占位变量机制,则需要给定一个feed_dict字典
print(sess.run(y,feed_dict={x:[[0.7,0.9]]}))
sess.close()
"""补充:维度可以转换,类型不能"""
# w1.assign(w2)#会出错
tf.assign(w1,w2,validate_shape=False) # 这句可以,但基本不用