ステートメントsess.run()
を複数回実行する必要があります。 コードの最初にsess
を作成します。しかし、各sess.run()
ステートメントは、私のCPUマシン上で約0.5-0.8秒かかる。私はこれを最適化する方法はありますか? Tensorflowは遅延読み込みを行うので、それをやり直す方法はないのですか?複数の実行でTensorflowを最適化する
私はイメージ分類の例のInceptionモデルを使用しています。
def load_network():
with gfile.FastGFile('model.pb', 'rb') as f:
graph_def = tf.GraphDef()
data = f.read()
graph_def.ParseFromString(data)
png_data = tf.placeholder(tf.string, shape=[])
decoded_png = tf.image.decode_png(png_data, channels=3)
_ = tf.import_graph_def(graph_def, name=input_map={'DecodeJpeg': decoded_png})
return png_data
def get_pool3(sess, png_data, imgBuffer):
pool3 = sess.graph.get_tensor_by_name('pool_3:0')
pool3Vector = sess.run(pool3, {png_data: imgBuffer.getvalue()})
return pool3Vector
def main():
sess = getTensorSession()
png_data = load_network()
# The below line needs to be called multiple times, which is what takes
# nearly 0.5-0.8 seconds.
# imgBuffer contains the stored value of the image.
pool3 = get_pool3(sess, png_data, imgBuffer)
プレースホルダを使用していますか?キューを使用する方が効率的です –
私は1つのプレースホルダを追加しました。残りはテンソルフローが与える開始モデルです。 – n00b