**
1.tf計算模型——計算圖
**
#定義兩個不同的圖,說明不同圖中張量無關
import tensorflow as tf
g1 = tf.Graph()
with g1.as_default():
v = tf.get_variable("v", [1], initializer = tf.zeros_initializer) # 設置初始值爲0
g2 = tf.Graph()
with g2.as_default():
v = tf.get_variable("v", [1], initializer = tf.ones_initializer()) # 設置初始值爲1
with tf.Session(graph = g1) as sess:
tf.global_variables_initializer().run()
with tf.variable_scope("", reuse=True):
print(sess.run(tf.get_variable("v")))
with tf.Session(graph = g2) as sess:
tf.global_variables_initializer().run()
with tf.variable_scope("", reuse=True):
print(sess.run(tf.get_variable("v")))
**
2.tf數據模型——張量
**
import tensorflow as tf
a = tf.constant([1.0, 2.0], name="a")
b = tf.constant([2.0, 3.0], name="b")
result = a + b
print result
sess = tf.InteractiveSession ()
print(result.eval())
sess.close()
*
3.tf運行模型——會話*
sess = tf.Session()
with sess.as_default():
print(result.eval())
4.tf實現完整的神經網絡
import tensorflow as tf
from numpy.random import RandomState
#定義神經網絡的參數,輸入和輸出節點。
batch_size = 8
w1= tf.Variable(tf.random_normal([2, 3], stddev=1, seed=1))
w2= tf.Variable(tf.random_normal([3, 1], stddev=1, seed=1))
x = tf.placeholder(tf.float32, shape=(None, 2), name="x-input")
y_= tf.placeholder(tf.float32, shape=(None, 1), name='y-input')
#定義前向傳播過程,損失函數及反向傳播算法
a = tf.matmul(x, w1)
y = tf.matmul(a, w2)
cross_entropy = -tf.reduce_mean(y_ * tf.log(tf.clip_by_value(y, 1e-10, 1.0)))
train_step = tf.train.AdamOptimizer(0.001).minimize(cross_entropy)
#生成模擬數據集
rdm = RandomState(1)
X = rdm.rand(128,2)
Y = [[int(x1+x2 < 1)] for (x1, x2) in X]
#創建一個會話來運行TensorFlow程序。
with tf.Session() as sess:
init_op = tf.global_variables_initializer()
sess.run(init_op)
# 輸出目前(未經訓練)的參數取值。
print "w1:", sess.run(w1)
print "w2:", sess.run(w2)
print "\n"
# 訓練模型。
STEPS = 5000
for i in range(STEPS):
start = (i*batch_size) % 128
end = (i*batch_size) % 128 + batch_size
sess.run(train_step, feed_dict={x: X[start:end], y_: Y[start:end]})
if i % 1000 == 0:
total_cross_entropy = sess.run(cross_entropy, feed_dict={x: X, y_: Y})
print("After %d training step(s), cross entropy on all data is %g" % (i, total_cross_entropy))
# 輸出訓練後的參數取值。
print "\n"
print "w1:", sess.run(w1)
print "w2:", sess.run(w2)
#結果如下
w1: [[-0.81131822 1.48459876 0.06532937]
[-2.44270396 0.0992484 0.59122431]]
w2: [[-0.81131822]
[ 1.48459876]
[ 0.06532937]]
After 0 training step(s), cross entropy on all data is 0.0674925
After 1000 training step(s), cross entropy on all data is 0.0163385
After 2000 training step(s), cross entropy on all data is 0.00907547
After 3000 training step(s), cross entropy on all data is 0.00714436
After 4000 training step(s), cross entropy on all data is 0.00578471
w1: [[-1.9618274 2.58235407 1.68203783]
[-3.4681716 1.06982327 2.11788988]]
w2: [[-1.8247149 ]
[ 2.68546653]
[ 1.41819501]]
5.pycharm
pycharm打開方法:cd pycharm/bin
source pycharm.sh
.pynb的打開及jupyter的安裝:https://blog.csdn.net/gamedr/article/details/72803234