Die zweite Option (Tabelle der Tensoren) hat einen Overhead, da sie N (= 15.000) mal den Header jedes 2x300x20 Tensors enthält (siehe unten). Aber dieser Overhead ist hier vernachlässigbar. die Gesamtmenge der Daten. Also sollten beide Optionen grob äquivalent in Bezug auf den Raum sein.
Bitte beachten Sie, dass der zugrunde liegende Speicher Teil des Archivs ist. Das bedeutet, dass, wenn aus irgendeinem Grund, die Lagerung ist größer als die aktuelle Tensor Größe, wird das Archiv große, zB:
Hier x.t7
ist um 782KB vs. 119B für y.t7
, denn es bezieht sich auf ein zugrunde liegender Speicher von 100.000 Elementen.
In Ihrer ersten Option sollten Sie überprüfen, dass Sie nicht in diesem Fall sind.
-
z.B. eine Dummy-Fackel Tensor im ASCII-Modus Serialisierung:
$ th -e "torch.save('foo.t7', torch.Tensor{1234}, 'ascii')"
$ xxd -g1 foo.t7
00000000: 34 0a 31 0a 33 0a 56 20 31 0a 31 38 0a 74 6f 72 4.1.3.V 1.18.tor
00000010: 63 68 2e 44 6f 75 62 6c 65 54 65 6e 73 6f 72 0a ch.DoubleTensor.
00000020: 31 0a 31 0a 31 0a 31 0a 34 0a 32 0a 33 0a 56 20 1.1.1.1.4.2.3.V
00000030: 31 0a 31 39 0a 74 6f 72 63 68 2e 44 6f 75 62 6c 1.19.torch.Doubl
00000040: 65 53 74 6f 72 61 67 65 0a 31 0a 31 32 33 34 0a eStorage.1.1234.
Wie Sie das Archiv sehen kann, umfasst: eine erste ganze Zahl (4 hier), die die type of the object und für eine Fackel Klasse andere Metadaten wie seine Version (V 1
hier) bezeichnet usw. und dann der endgültige Wert (1234
hier).