Ho creato un set di dati e l'ho salvato in un file TFRecord. Il fatto è che le immagini hanno dimensioni diverse, quindi voglio salvare anche le dimensioni con le immagini. Così ho usato il TFRecordWriter e definito le caratteristiche come:Come leggere le immagini con dimensioni diverse in un file TFRecord
example = tf.train.Example(features=tf.train.Features(feature={
'rows': _int64_feature(image.shape[0]),
'cols': _int64_feature(image.shape[1]),
'image_raw': _bytes_feature(image_raw)}))
mi aspettavo che posso leggere e decodificare l'immagine utilizzando TFRecordReader, ma la cosa è che non posso ottenere il valore di righe e colonne dal file perché sono tensori. Quindi, come dovrei fare per leggere le dimensioni dinamicamente e rimodellare l'immagine di conseguenza. Grazie ragazzi
ha generato l'errore "Tutte le forme devono essere completamente definite: 1". dal log, sembra che abbia qualcosa a che fare con la funzione "tf.train.shuffle_batch()". Cosa dovrei fare allora? –
batch ha bisogno di conoscere le forme durante la costruzione del grafico (in modo da sapere quanta memoria allocare per la coda), forse usare tf.image.resize_images prima di tf.batch? Se si utilizza uno dei convnets standard, sarà necessario ridimensionare le immagini alla stessa dimensione in ogni caso –
+ Tong Shen, dal momento che si sta costruendo un batch, le immagini devono avere la stessa dimensione. Se conosci questa dimensione in anticipo, potresti chiamare qualcosa come 'image.set_shape ([32,32,3])' per definire completamente la forma. – bgshi