2
Tensorflow Linearロジスティック回帰モデルを〜1000万行と50列のデータセットで実行しようとしています。Tensorflow:StringOutputStreamにkint32maxより大きいバッファを割り当てることができません
このモデルのサブセット、つまり〜6millionセットで同じモデルを実行すると、モデルは正常に動作します。それは、この千万セットにしようとした場合でも、それは次のスタックトレースをスローし、これが関連するコードの抜粋である
[libprotobuf ERROR google/protobuf/io/zero_copy_stream_impl_lite.cc:173] Cannot allocate buffer larger than kint32max for StringOutputStream.
Traceback (most recent call last):
File "tensorflow_up.py", line 70, in <module>
m.fit(input_fn=train_input_fn, steps=200)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/util/deprecation.py", line 280, in new_func
return func(*args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/contrib/learn/python/learn/estimators/estimator.py", line 426, in fit
loss = self._train_model(input_fn=input_fn, hooks=hooks)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/contrib/learn/python/learn/estimators/estimator.py", line 984, in _train_model
_, loss = mon_sess.run([model_fn_ops.train_op, model_fn_ops.loss])
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/training/monitored_session.py", line 462, in run
run_metadata=run_metadata)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/training/monitored_session.py", line 786, in run
run_metadata=run_metadata)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/training/monitored_session.py", line 744, in run
return self._sess.run(*args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/training/monitored_session.py", line 883, in run
feed_dict, options)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/training/monitored_session.py", line 909, in _call_hook_before_run
request = hook.before_run(run_context)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/training/basic_session_run_hooks.py", line 340, in before_run
"graph.pbtxt")
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/graph_io.py", line 67, in write_graph
file_io.atomic_write_string_to_file(path, str(graph_def))
ValueError: Unable to convert message to str
を終了します。
m = tf.contrib.learn.LinearClassifier(feature_columns=[location, master_source, device] + realValues, model_dir='~/')
m.fit(input_fn=train_input_fn, steps=200)
results = m.evaluate(input_fn=eval_input_fn, steps=1)
私はここで何かが足りないのですか?メモリの統計情報は、プログラムが実行されているときによく見えます。
[queue input](https://www.tensorflow.org/programmers_guide/threading_and_queues)を使用しているのか、グラフにデータセットを埋め込んでいますか?後者の場合、このエラーを回避するだけでなく、グラフの構築やチェックポイントの書き込みを高速化するために、キューに切り替えることもできます。つまり、トレーニングデータセット全体がグラフとともに記録されているように見えます。 –