我正在基于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()参数必须是字符串或数字 –