python tensorflow 智能家居_TensorFlow平台下的视频目标跟踪深度学习模型设计
4.3 深度學習模型設計實現
實驗開始階段需要鏈接相關函數庫, 程序中采用如下的語句:
import TensorFlow as tf
import cv
…
import TensorFlow as tf是TensorFlow的啟動語句, 用來調用TensorFlow內的函數庫; import cv用來調用相應的open cv函數庫。
構建圖是深度學習模型設計的關鍵部分, 其主要工作是完成節點的創建并定義節點間的運算方式, 由于節點的建立和操作均依托張量進行, 所以模型的節點連接以張量的連接形式表現, 通常將一組圖像集表示為一個4維浮點數數組, 4個維度分別為[batch, height, width, channels]。
初始節點和輸出節點的構建:
x_=tf.placeholder("float", shape=[None, 720, 400, 3])
y_ = tf.placeholder("float", shape=[None, 4])
720和400代表輸入圖片的分辨率, 4代表輸出數據有4個數值, 即目標中心點x、y軸坐標和矩形框的長、寬值。
網絡結構:實驗設定進行5次卷積和下采樣, 每次卷積后的當前層節點數目分別為8、16、32、64、128、256。
卷積層節點的構建:
W_conv1 = weight_variable([3, 3, 3, 16])
b_conv1 = bias_variable([16])
W_conv2 = weight_variable([2, 2, 16, 32])
…
W_conv5 = weight_variable([3, 3, 128, 256])
b_conv5 = bias_variable([256])
全連接層和輸出層節點的構建:
W_fc1 = weight_variable([4×4×256, 256])
b_fc1 = bias_variable([256])
W_fc2 = weight_variable([256, 256])
b_fc2 = bias_variable([256])
W_fc3 = weight_variable([256, 4])
b_fc3 = bias_variable([4])
在數組[2, 2, 3, 16]中, 前兩個參數代表使用2×2的卷積網格進行卷積, 第三個參數代表RGB通道彩色圖像, 最后一個參數代表經過一次卷積后生成了16張特征圖, 數組[2, 2, 16, 32]中后兩個參數代表由16張特征圖與32張特征圖連接。
定義神經網絡節點間的操作運算:卷積和池化。
h_conv1 = tf.nn.relu(conv2d(x, W_conv1) + b_conv1)
h_pool1 = max_pool_2x2(h_conv1)
神經網絡的構建按照先卷積一次, 再池化一次的順序交替進行。
極小化誤差方法:
rmse=tf.sqrt(tf.reduce_mean(tf.square(y_- y_conv)))
train_step=tf.train.AdamOptimizer(1e-3).minimize(rmse)
實驗采用的學習方法是自適應矩估計(Adam)算法, Adam算法根據損失函數對每個參數的梯度進行一階矩和二階矩估計, 動態調整每個參數的學習速率。同時, Adam算法是基于梯度下降的方法, 每次迭代參數的學習步長都有一個確定的范圍, 不會因較大的梯度而導致較大的學習步長, 因此參數值比較穩定。
總結
以上是生活随笔為你收集整理的python tensorflow 智能家居_TensorFlow平台下的视频目标跟踪深度学习模型设计的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 电话手表屏幕碎了可以换吗(从电脑拨打和接
- 下一篇: CAD安装激活失败的原因