In der TensorFlow Dokumentation bei GitHub, gibt es diesen Code ein:TensorFlow: Warum müssen nicht-spärliche Elemente beim Analysieren eines TF-Beispiels aus TFRecord-Dateien einmal umgeformt werden?
# Reshape non-sparse elements just once:
for k in self._keys_to_features:
v = self._keys_to_features[k]
if isinstance(v, parsing_ops.FixedLenFeature):
example[k] = array_ops.reshape(example[k], v.shape)
Ich frage mich, warum es notwendig ist, einen FixedLenFeature Tensor neu zu gestalten, nachdem es von einer TFRecord Datei Parsen.
In der Tat, was ist der Unterschied zwischen einem FixedLenFeature und VarLenFeature und was ist ihre Relevanz für einen Tensor? Ich lade Bilder in diesem Fall, also warum sollten sie alle als FixedLenFeature klassifiziert werden? Was ist ein Beispiel für ein VarLenFeature?
Bedeutung zu sagen ist es in Ordnung, wenn ich meine TFRecord-Dateien erstellt habe, ist es in Ordnung, dass meine Bilder alle nicht die gleiche Form haben, denn bevor ich sie in den Stapel laden würde ich sie bereits umgeformt haben? Ist es richtig zu sagen, dass wir für Bilder nicht VarLenFeatures verwenden können, da es uns einen spärlichen Tensor geben würde (der nicht für Bilder geeignet ist)? – kwotsin
Das Problem ist, wenn es um das Stapeln der Bilder geht. Sie können Arrays mit variabler Länge von der Festplatte lesen, aber die einzige effiziente Möglichkeit, ein Image-Modell zu trainieren, besteht darin, sie in ein dichtes, gestapeltes Format zu bringen, was bedeutet, dass Sie alle Größen ändern müssen. Wenn man also spärliche Tensoren liest, ihre Größe ändert, sie dicht macht, dann ist es eine perfekte Eingabepipeline, sie zu dosieren. –
Ist es richtig zu sagen, dass, wenn ich alle meine Bilder auf die gleiche Größe (zB 500x500) skaliert hätte, auch wenn ich sie später durch Vorverarbeitung in eine kleinere Größe (zB 299x299) verkleinern muss, ist es effizienter diese zu lesen Bilder, weil ich den Inhalt als FixedLenFeature angeben würde, während ich die TF-Beispiele lese? Da die TF-Beispiele nacheinander gelesen werden, wie unterscheidet sich FixedLenFeature von VarLenFeature, wenn die Maschine keine Kenntnis von den Formen anderer Beispiele hat, die sie zuvor gelesen hat (dies ist nur eine Annahme)? – kwotsin