我正在基於inception-v3的網絡上工作。我成功地訓練了網絡,現在我想喂一批opencv圖像到我的網絡並獲得一些輸出。 網絡的原始佔位符接受一個字符串並對其進行解碼JPG格式(this image)但我OpenCV中讀取視頻幀,並將其轉換爲nparray
列表:批量輸入到張量流中的某一層
for cnt in range(batch_size):
frameBuffer = []
if (currentPosition >= nFrames):
break
ret, frame = vidFile.read()
img_data = np.asarray(cv2.cvtColor(frame, cv2.COLOR_BGR2RGB))
frameBuffer.append(img_data)
currentPosition += multiplier
如果我想用一個單一的圖像工作,怎麼一回事,因爲我直接讀來自幀的OpenCV,我將它們轉換爲NP-陣列再餵它來:以來網絡的「鑄0」層:
pred = sess.run([predictions], {'Cast:0': img_data})
結果爲OK到這一點。但是我要養活一組幀:我想在目前的方式使用feed_dict
:
images = tf.placeholder(tf.float32, [batch_size,width,height, 3])
image_batch = tf.stack(frameBuffer)
feed_dict = {images: image_batch}
avgRepresentation, pred = sess.run([pool_avg, predictions],{'Cast:0': feed_dict})
,但我得到的錯誤;我知道我在餵養批次時出錯。你有什麼建議,我可以如何喂一批圖像到網絡的某一層?
你能不能給我們你得到了錯誤? – gdelab
pred = sess.run([predictions],{'Cast:0':feed_dict}) 文件「/usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.py」,第778行,正在運行 run_metadata_ptr) 文件「/usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.py」,第954行,在_run中 np_val = np.asarray(subfeed_val ,dtype = subfeed_dtype) 文件「/usr/local/lib/python2.7/dist-packages/numpy/core/numeric.py」,第531行,asarray 返回數組(a,dtype,copy = False,order = order) TypeError:float()參數必須是字符串或數字 –