壓縮的必要性
很顯然,在計算圖中,張量在節(jié)點之間流動。在流到達可以處理的節(jié)點之前,減少流造成的延遲非常重要。一個方法是使用有損壓縮減小尺寸。
張量的數(shù)據(jù)類型可以發(fā)揮重要作用,讓我們來理解為什么。很明顯機器學(xué)習(xí)中的操作中有更高的精度。例如,如果我們使用float32作為張量的數(shù)據(jù)類型,那么每個值都表示為32位浮點數(shù),因此每個值占用32位的大小,這同樣適用于64位。假設(shè)一個形狀為(1000,440,440,3)的張量,其包含的值的數(shù)量為1000 * 440 * 440 * 3。如果數(shù)據(jù)類型是32位,那么占用的空間是這個巨大數(shù)字的32倍,從而增加了流的延遲。壓縮技術(shù)可以用來減小尺寸。
有損壓縮
有損壓縮涉及壓縮數(shù)據(jù)的大小,并不在意它的值,這意味著它的值可能會在壓縮過程中被破壞或不準確。 但是,如果我們有一個像1.01010e-12這樣的32位浮點數(shù),那么對于最低有效數(shù)字的重要性就會降低。 更改或刪除這些值不會在我們的計算中產(chǎn)生太大的差異。因此,Tensorflow會自動將32位浮點數(shù)轉(zhuǎn)換為16位表示,忽略所有可忽略的數(shù)字。如果它是64位數(shù),則會將其大小減少近一半。如果將64位數(shù)壓縮到16位將幾乎縮小75%。因此張量所占用的空間可以盡可能減少。
一旦張量到達節(jié)點,16位表示可以通過追加0回到它的原始形式。因此,32或64位表示將在到達節(jié)點進行處理后被還原。








暫無數(shù)據(jù)