Dies ist der Fehler, den ich bekamtensorflow: Valueerror: GraphDef kann nicht größer sein als 2 GB
Traceback (most recent call last):
File "fully_connected_feed.py", line 387, in <module>
tf.app.run(main=main, argv=[sys.argv[0]] + unparsed)
File "/home/-/.local/lib/python2.7/site-
packages/tensorflow/python/platform/app.py", line 44, in run
_sys.exit(main(_sys.argv[:1] + flags_passthrough))
File "fully_connected_feed.py", line 289, in main
run_training()
File "fully_connected_feed.py", line 256, in run_training
saver.save(sess, checkpoint_file, global_step=step)
File "/home/-/.local/lib/python2.7/site-
packages/tensorflow/python/training/saver.py", line 1386, in save
self.export_meta_graph(meta_graph_filename)
File "/home/-/.local/lib/python2.7/site-
packages/tensorflow/python/training/saver.py", line 1414, in export_meta_graph
graph_def=ops.get_default_graph().as_graph_def(add_shapes=True),
File "/home/-/.local/lib/python2.7/site-
packages/tensorflow/python/framework/ops.py", line 2257, in as_graph_def
result, _ = self._as_graph_def(from_version, add_shapes)
File "/home/-/.local/lib/python2.7/site-
packages/tensorflow/python/framework/ops.py", line 2220, in _as_graph_def
raise ValueError("GraphDef cannot be larger than 2GB.")
ValueError: GraphDef cannot be larger than 2GB.
Ich glaube, es aus dem Ergebnis dieses Codes ist
weights = tf.get_collection(tf.GraphKeys.GLOBAL_VARIABLES, scope="hidden1")[0]
weights = tf.scatter_nd_update(weights,indices, updates)
weights = tf.get_collection(tf.GraphKeys.GLOBAL_VARIABLES, scope="hidden2")[0]
weights = tf.scatter_nd_update(weights,indices, updates)
Ich bin nicht sicher, warum mein Modell wird so groß (15k Schritte und 240MB). Irgendwelche Gedanken? Vielen Dank!
Danke! Ich bekomme Ihren Punkt auf dem Modell zu erhöhen, aber ich verschachtelte 'tf.scatter_nd_update (...)', weil ich meine Gewichte bei jedem Schritt aktualisieren musste (eine Art manuelle Faltung). Vielleicht ist es der falsche Weg? –
Vielleicht verstehe ich das falsch, aber trifft das nicht zu? Rufen Sie nicht 'tf.scatter_nd_update' in der Schleife auf, sondern speichern Sie die zurückgegebene Operation und rufen Sie sie in der Schleife auf. Aus der [Dokumentation von 'tf.scatter_nd_update'] (https://www.tensorflow.org/api_docs/python/tf/scatter_nd_update) - wendet es das Update an und gibt einfach den gleichen Wert wie das erste Argument zurück. So könnten Sie etwas tun wie: update = tf.scatter_nd_update (Gewichte, Indizes, Updates) für i in xrange (num_steps): sess.run (Update) – ash