Я работал над созданием набора данных XOR gate с torch7. Но когда я напечатал набор данных, я увидел, что данные были неправильными, но я не смог найти ошибку. В коде нет ничего плохого. Но я новичок в факеле, поэтому могут произойти ошибки.Неожиданное поведение при torch7
Итак, вот мой код
input = torch.Tensor (4,2)
input:random(0,1)
output = torch.Tensor(1)
dataset={};
function dataset:size() return 4 end
for i=1,dataset:size() do
if input[i][1]==input[i][2] then
output[1] = 0
else
output[1] = 1
end
print("original")
print(input[i][1].." "..input[i][2].." "..output[1]) -- the values that are going to dataset
dataset[i] = {input[i], output}
print("dataset")
print(dataset[i][1][1].." "..dataset[i][1][2].." "..dataset[i][2][1]) -- for double checking i read from dataset again
end
print("Why dataset is different now?")
for i=1,4 do
print(dataset[i][1][1].." "..dataset[i][1][2].." "..dataset[i][2][1]) -- So, why this is different?
end
Как вы можете видеть, я напечатал значение, которые вставляются в dataset
список и для двойной проверки я прочитал от dataset
снова.
И, наконец, я проверил от dataset
после полной установки. Набор данных был каким-то иным. Я побежал пару раз. Каждый раз это было по-другому. Как он застрял на 1 или 0.
Так вот мой выход
original
1 0 1
dataset
1 0 1
original
0 0 0
dataset
0 0 0
original
1 1 0
dataset
1 1 0
original
0 0 0
dataset
0 0 0
Why dataset is different now?
1 0 0
0 0 0
1 1 0
0 0 0
Как вы можете видеть, формат как этот
input input output
Я напечатанной оригинал, когда я прочитал от ввода [i] и вывода.
Я напечатал набор данных, когда прочитал из набора данных, после того, как был вставлен.
Также вы можете видеть, что первый набор значений отличается при печати. Это должно быть 1 0 1. Но это 1 0 0.
Я не смог найти ошибку в своем коде. Может ли кто-нибудь помочь? Если вопрос непонятен, сообщите мне.
Спасибо :). Я понимаю. Это похоже на питон? –
Да, в значительной степени, как в python :) – Vlad