2017-10-07 2 views
0

TensorFlowには、私が使用しているGPUを非公式にベンチマークするためのTensorFlowプログラムがあります.TensorFlowに付属のプロファイリングツールについて理解しています。このコードでは、行列の2つのプレースホルダとmatmul opを設定し、プレースホルダにデータを挿入して10回グラフを実行するセッションを呼び出します。私はtensorboardグラフを見るとTensorflowタイムライン戻るメタデータNaN

n = 10240 
iter = 10 

tf.reset_default_graph() 
graph = tf.Graph() 
with graph.as_default(): 
    with tf.device("/gpu:0"): 
     matrix1 = tf.placeholder(tf.float32, [n, n], name="Matrix_One") 
     matrix2 = tf.placeholder(tf.float32, [n, n], name="Matrix_Two") 
     product = tf.matmul(matrix1, matrix2, name = "Matrix_Multiply") 

date = datetime.now() 
cwd = os.getcwd() 
LogBase = cwd + "/benchmarks2/" 
LogPath = LogBase + date.strftime("%Y%m%d-%H%M%S") + "/" 
print(LogPath) 

with tf.Session(graph=graph) as session: 
    tf.global_variables_initializer().run() 

    run_options = tf.RunOptions(trace_level=tf.RunOptions.FULL_TRACE) 
    run_metadata = tf.RunMetadata() 

    writer = tf.summary.FileWriter(LogPath, session.graph) 
    for i in range(iter): 
     m1 = np.random.rand(n, n) 
     m2 = np.random.rand(n, n) 
     feed_dict = { matrix1 : m1,matrix2 : m2} 
     p = session.run([product], feed_dict=feed_dict, options=run_options, run_metadata=run_metadata) 
     writer.add_run_metadata(run_metadata, 'step%2d' % i) 

    tf.summary.FileWriter(LogPath, graph).close() 

二つの特色が出てくる:ここ

はコードで、私は10回の反復を実行

  • ますが、tensorboardしか思われ、8つのステップを示しています以下に示すよう
  • 奇数は最も重要なことは、私は、計算時間やメモリのためのNaN以外のものを見ることはありません。行列複数演算が選択されていることに注意してください。

なぜこのようなことが起こりますか?どのように修正できますか? enter image description here

答えて

0

Google Webトレースフレームワークを使用しましたか?これは、計算とメモリ使用のタイムラインを分析する以前の方法です。

これは、あなたの質問への答えではありませんが、それは比較し、おそらく問題を特定するための良い方法です。

関連する問題