1. 程式人生 > >機器學習實戰2——Tensorflow初使用

機器學習實戰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,則不限制大小