2016-04-03 15 views
0

Ich bemerkte ein ungewöhnliches Verhalten mit Fackel7. Ich weiß ein wenig über Fackel7. Ich weiß also nicht, wie dieses Verhalten erklärt oder korrigiert werden kann.Ungewöhnliches Verhalten beim Speichern und Laden von Bildern in Fackel7

Also verwende ich CIFAR-10-Datensatz. Ich habe einfach Daten für ein Bild von CIFAR-10 geholt und dann in meinem Verzeichnis gespeichert. Als ich das gespeicherte Bild geladen habe, war es anders.

Hier ist mein Code -

require 'image' 

i1 = testData.data[2] --fetching data from CIFAR-10 
image.save("1.png", i) --saving the data as image 

i2 = image.load("1.png") --loading the saved image 

if(i1 == i2) then --checking if image1(i1) and image2(i2) are different 
print("same") 
end 

Ist dieses Verhalten erwartet? Ich dachte, png sollte verlustfrei sein.

Wenn ja, wie kann das korrigiert werden?

-Code für CIFAR-10 dataset-

-- load dataset 
    trainData = { 
    data = torch.Tensor(50000, 3072), 
    labels = torch.Tensor(50000), 
    size = function() return trsize end 
    } 
    for i = 0,4 do 
    local subset = torch.load('cifar-10-batches-t7/data_batch_' .. (i+1) .. '.t7', 'ascii') 
    trainData.data[{ {i*10000+1, (i+1)*10000} }] = subset.data:t() 
    trainData.labels[{ {i*10000+1, (i+1)*10000} }] = subset.labels 
    end 
    trainData.labels = trainData.labels + 1 

    local subset = torch.load('cifar-10-batches-t7/test_batch.t7', 'ascii') 
    testData = { 
    data = subset.data:t():double(), 
    labels = subset.labels[1]:double(), 
    size = function() return tesize end 
    } 
    testData.labels = testData.labels + 1 
    testData.data = testData.data:reshape(10000,3,32,32) 

Antwort

1

== Operator Laden vergleicht Zeiger auf zwei Tensoren, nicht Inhalt:

a = torch.Tensor(3, 5):fill(1) 
b = torch.Tensor(3, 5):fill(1) 
print(a == b) 
> false 
print(a:eq(b):all()) 
> true 
Verwandte Themen