overcome Graphdef kann im Tensorflow nicht größer als 2 GB sein.

Ich benutze Tensorflow'simageNet trainiertes Modell, um die Features der letzten Poolebene als Repräsentationsvektoren für einen neuen Bilddatensatz zu extrahieren.

Das Modell sieht auf einem neuen Bild wie folgt aus:

python classify_image.py --image_file new_image.jpeg 

Ich habe die Hauptfunktion so bearbeitet, dass ich einen Ordner mit Bildern nehmen und die Vorhersage für alle Bilder gleichzeitig zurückgeben und die Merkmalsvektoren in eine CSV-Datei schreiben kann. So habe ich das gemacht:

def main(_):
  maybe_download_and_extract()
  #image = (FLAGS.image_file if FLAGS.image_file else
  #         os.path.join(FLAGS.model_dir, 'cropped_panda.jpg'))
  #edit to take a directory of image files instead of a one file
  if FLAGS.data_folder:
    images_folder=FLAGS.data_folder
    list_of_images = os.listdir(images_folder)
  else: 
    raise ValueError("Please specify image folder")

  with open("feature_data.csv", "wb") as f:
    feature_writer = csv.writer(f, delimiter='|')

    for image in list_of_images:
      print(image) 
      current_features = run_inference_on_image(images_folder+"/"+image)
      feature_writer.writerow([image]+current_features)

Es funktionierte gut für etwa 21 Bilder, stürzte dann aber mit folgendem Fehler ab:

  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/ops.py", line 1912, in as_graph_def
    raise ValueError("GraphDef cannot be larger than 2GB.")
ValueError: GraphDef cannot be larger than 2GB.

Ich dachte durch den Aufruf der Methoderun_inference_on_image(images_folder+"/"+image) Die vorherigen Bilddaten würden überschrieben, um nur die neuen Bilddaten zu berücksichtigen, was anscheinend nicht der Fall ist. So beheben Sie dieses Problem:

Antworten auf die Frage(8)

Ihre Antwort auf die Frage