TensorFlow2.0快速入門:https://tf.wiki/zh/basic/tools.htmlhtml
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++python
TensorFlow:官方文檔git
TensorFlow:項目地址github
本篇列出文章對於全零新手不太合適,能夠嘗試TensorFlow入門系列博客,搭配其餘資料進行學習。api
Keras使用tf.Session訓練方法教程安全
『TensorFlow』0.x_&_1.x版本框架改動彙總網絡
『PyTorch』第六彈_最小二乘法對比PyTorch和TensorFlow :參數更新機制分析,流程控制初探
『TensorFlow』網絡操做API_上 :卷積層,池化層,激活函數(含dropout和bias_add)
『教程』CapsNet 架構 & TensorFlow 實現
『TensorFlow』讀書筆記_Inception_V3_上
『TensorFlow』讀書筆記_Inception_V3_下
『PyTorch × TensorFlow』第十七彈_ResNet快速實現
.minimize
『TensorFlow』網絡操做API_下 :優化器相關接口
『TensorFlow』梯度優化相關 :梯度操做
『TensorFlow』使用集合collection控制variables
#集合轉換爲字典,{節點名:輸出張量值} end_points = slim.utils.convert_collection_to_dict(end_points_collection) # 收集 & 獲取 變量 tf.add_to_collection("loss",mse_loss) tf.add_n(tf.get_collection("loss"))
『TensorFlow』網絡操做API_中 :損失函數以及分類器
Dataset API讀取數據
『TensorFlow』數據讀取類_data.Dataset
傳統數據讀取方法
『TensorFlow』TFR數據預處理探究以及框架搭建 :基於queue處理TFR數據
線程控制器原理:
監視tensorflow全部後臺線程,有異常出現(主要是越界,資源循環完了)時,其should_stop方法就會返回True,而它的request_stop方法則用於要求各個線程安全退出。須要使用local變量,初始化時注意。
常規圖片數據讀取方式:
img_bytes = tf.read_file(FLAGS.style_image)
image = tf.image.decode_png(img_bytes)
涉及隊列操做時報錯可能解決辦法
OutOfRangeError (see above for traceback): FIFOQueue '_1_input_producer' is closed and has insufficient elements (requested 1, current size 0) [[Node: ReaderReadV2 = ReaderReadV2[_device="/job:localhost/replica:0/task:0/cpu:0"](WholeFileReaderV2, input_producer)]]
由於局部變量(local variables)沒有初始化,將初始化變量語句改成
全局變量初始化:tf.global_variables_initializer().run()
局部變量初始化:tf.local_variables_initializer().run()
再也不報錯。局部變量不多,通常都是系統本身建立的變量,如記錄訓練進度的epoch。
ctrl + 鼠標滑輪 能夠放大&縮小tensorboard中全部的頁面
命名空間設置好:添加記錄節點 -> 彙總記錄節點 -> run彙總節點 -> [書寫器生成]書寫入文件 [-> 刷新緩衝區]
# 書寫器生成,會自動記錄指定圖 tf.summary.FileWriter('./', sess.graph) # 張量記錄 tf.summary.histogram(layer_name+'/weights',Weights) # 標量記錄 tf.summary.scalar = ('loss',cross_entropy) # 記錄激活 merged = tf.summary.merge_all() # 書寫器生成 train_writer = tf.summary.FileWriter('logs/train',sess.graph) # run記錄 train_result = sess.run(merged, feed_dict={xs: X_train, ys: y_train, keep_prob:1}) # 書寫記錄 train_writer.add_summary(train_result,i) # 刷新緩衝區,當即寫入文件 train_writer.flush()
節點張量鋪設好了以後,只要不加sess.run(),能夠運行腳本檢查張量節點是否匹配,無需傳入實際數據流。
'conv1'指節點,'conv1:0'指節點輸出的第一個張量。
sess上下文環境中的函數調用即便不傳入sess句柄,函數體內也存在於默認的sess環境中,能夠直接sess.run()。
image_holder = tf.placeholder(tf.float32,[None, None, None, 3]),使用None迴避指定大小。
sess實際運行單機模式時,會提取目標節點的全部前置依賴構建成子圖,而後按照設備劃分紅多個局部圖,局部圖根據依賴前後關係對節點進行加載
設備指定使用tf.device('/cpu:0')上下文操做,且支持嵌套,邏輯於slim的scope一致
import tensorflow as tf
tf.__version__ # 版本
tf.__path_ # 路徑
# __看着是一個下劃線,其實是兩個下劃線
TensorFlow中全部張量而不只是佔位符都是能夠feed的,若是有feed,其優先級大於圖中的計算流程。