機器學習實戰2——Tensorflow初使用
Tensorflow的一些亮點:
1.可以執行在windows,Linux,macOS和移動裝置上
2.提供了TF .Learn的API來相容Scikit-Learn
3.提供了TF-Slim的API來簡化神經網路的構建、訓練和評估
4.在Tensorflow之上,獨立構建了一些高階API,比如Keras和Pretty Tensor
5.通過他的API,可以用C++來實現高效能操作
6.自動微分:他會自動計算你定義的成本函式的梯度
7.提供TensorBoard的視覺化工具
8.Google還啟動了一個叫做TensorFlow計算圖的雲服務
Tensorflow變數初始化:
sess = tf.Session()
sess.run(x.initializer)
result = sess.run(f)
sess.close()
or:
with tf.Session() as sess:
x.initializer.run()
result = f.eval()
or:
init = tf.global_variables_initializer()
with tf.Session() as sess:
init.run()
result = f.eval()
or:
sess = tf.InteractiveSession() #InteractiveSession在建立時會自己設定為預設會話,因此無需使用with,但是需要close
init.run()
result = f.eval()
sess.close()
使用自動微分(反向autodiff):gradients()適用於多輸入少輸出(例如神經網路)
gradients = tf.gradients(mse,[theta])[0]
mse:操作符,對某個變數求導
[theta];引數列表,需要求導的變數
使用優化器:
optimazer = tf.train.GradientDescentOptimizer(learning_rate = learning_rate)
GradientDescentOptimizer
training_opt = optimizer.minimize(mse)
佔位符:placeholder()
在定義時不進行任何的操作,在執行時,需要傳遞一個feed_dict來指定其值。可以在定義時用shape=()指定大小,如果shape=None,則不限制大小