2017-01-01 7 views
0

Ich bin neu in Python und Tensorflow. Wie kann ich prüfen, welche Operationen für eine Variable ausgeführt werden können? Ich versuche, Bilder in einer Liste zu speichern. Ich möchte seine Größe nur zur Bestätigung herausfinden.Operationen auf Python-Datentypen

Dies ist der Code von der Website genommen.

# Typical setup to include TensorFlow. 
import tensorflow as tf 

# Make a queue of file names including all the JPEG images files in the relative 
# image directory. 
filename_queue = tf.train.string_input_producer(
    tf.train.match_filenames_once("./images/*.jpg")) 

# Read an entire image file which is required since they're JPEGs, if the images 
# are too large they could be split in advance to smaller files or use the Fixed 
# reader to split up the file. 
image_reader = tf.WholeFileReader() 

print(len(filename_queue)) 

Ich habe einen Fehler unten. Dies ist die Website für die Funktion string_input_producer https://www.tensorflow.org/api_docs/python/io_ops/input_pipeline#string_input_producer es nicht sagen, es gibt eine Liste so im nicht sicher, was im

Traceback (most recent call last): 
    File "tf_load_jpg.py", line 14, in <module> 
    print(len(filename_queue)) 
TypeError: object of type 'FIFOQueue' has no len() 
+2

Probieren Sie print dir (variable) - es druckt eine Liste von Methoden und Operationen. – Mae

+2

* "es heißt, es gibt eine Liste zurück" * - die Dokumente, die Sie verlinken, um wirklich zu sagen * "** Rückgabe: ** Eine Warteschlange mit den Ausgabezeichenfolgen." * Wenn Sie wissen möchten, welche Methoden eine FIFOQueue hat, Google ! – jonrsharpe

Antwort

1

falsch zu machen, wie in den Kommentaren erwähnt, sollen Sie dir(filename_queue) verwenden, um die Menge von Funktionen in einem Objekt zu überprüfen . Das gibt das folgende -

['__class__', '__delattr__', '__dict__', '__doc__', '__format__', 
'__getattribute__', '__hash__', '__init__', '__module__', '__new__', 
'__reduce__', '__reduce_ex__', '__repr__', '__setattr__', 
'__sizeof__', '__str__', '__subclasshook__', '__weakref__', 
'_check_enqueue_dtypes', '_dequeue_return_value', '_dtypes', 
'_name', '_names', '_queue_ref', '_scope_vals', '_shapes', 
'close', 'dequeue', 'dequeue_many', 'dequeue_up_to', 'dtypes', 
'enqueue', 'enqueue_many', 'from_list', 'name', 'names', 
'queue_ref', 'shapes', 'size'] 

Nutzen Sie die size() Funktion Ihr Ergebnis zu erhalten. Sie können mehr über FIFOQueue lesen.

+0

vielen Dank! das hat funktioniert ! Darf ich aber wissen, warum dir (tf.train.string_input_producer) mir etwas anderes gibt, obwohl filename_queue = tf.train.string_input_producer (...)? – kong

+1

Gern geschehen! Dies liegt daran, dass "tf.train.string_input_producer" eine Funktion und kein Objekt ist – martianwars