1
最初のプロジェクトはpytorchで、私はMNISTラベル 'int'をトーチ 'Variable'に変換しようとしました。デバッガに次元がないと言っていますか?'int'をpytorchに変換する 'variable'は問題を作ります
# numpy mnist data
X_train, Y_train = read_data("training")
X_test , Y_test = read_data("testing")
arr = np.zeros(5)
for i in range(5):
# in your training loop:
costs_ = 0
for k in range(10000):
optimizer.zero_grad() # zero the gradient buffers
a = torch.from_numpy(np.expand_dims(X_train[k].flatten(), axis=0)).float()
b = torch.from_numpy(np.array(Y_train[k], dtype=np.float)).float()
input = Variable(a)
output = net(input)
target = Variable(b) # PROBLEM!!
loss = criterion(output, target)
loss.backward()
optimizer.step() # Does the update
costs_ += loss.data.numpy()
arr[i] = costs_
print(i)
スローエラーがある:「例外RuntimeError:入力とターゲットは異なる数の要素を有する:入力[1×1] 1つの要素を有する、ターゲットは[]/B /ホイール/ pytorch-SRC/AT 0の要素を有していますtorch/lib/THNN/generic/MSECriterion.c:12 "
ありません、それは空ではありません。私が "print(Y_train [k])"を実行すると、端末の "5"が表示されます。 –
私は答えを編集しました。これは間違いなくそれであるはずです。また、将来の読者のために、 'X_train'、' Y_train'、 'X_test'と' Y_test'の入力の次元と 'output'の次元について、あなたの質問を編集するように依頼します。 – entrophy