次の関数で1つのホット表現を理解しようとしています。私は、この関数の各行を1行ずつ印刷しました。しかし、最後の行でインデックスが外れているというエラーが出ます。理由を理解できません。どうすればこの問題を解決できますか?他人のためにインデックスのエラーを表す1つのホット表現
def dense_to_one_hot(labels_dense, num_classes):
num_labels = labels_dense.shape[0]
index_offset = np.arange(num_labels) * num_classes
labels_one_hot = np.zeros((num_labels, num_classes))
labels_one_hot.flat[index_offset + labels_dense.ravel()] = 1
return labels_one_hot
labels_dense = np.arange(475000)
print labels_dense.shape
num_classes=10
num_labels = labels_dense.shape[0]
print num_labels
index_offset = np.arange(num_labels) * num_classes
print index_offset
print len(index_offset)
print 'index offset is '+str(index_offset.shape)
labels_one_hot = np.zeros((num_labels, num_classes))
print labels_one_hot.shape
x= labels_dense.ravel()
print x
print x.shape
plus= index_offset+x
print plus
print plus.shape
labels_one_hot.flat[plus]=1
は、このような詳細な説明のためにありがとうございました。今では私のコードでエラーが発生しているので、私のアルゴリズムはトレーニングとテストの両方で効率が悪いです。あなたは、私がlabel_dense [0,1、... 474999]を、あなたが言及したラベルformateに変換する方法を説明してください。私のコードでは、1 uptil 24からのラベル付けを開始しますが、トレーニングセットとラベルの両方をシャッフルします。自分の行インデックスをsample.shape [0]としてシャッフルするので、エラーが発生します。 –
@ R.ali、私はあなたが欲しいものを理解しているとは思わない。 "私は自分のlabel_denseをあなたが言及したラベル形式に変換することはできますか?"範囲内のiについて –
行= sample.shape [0] ラベル= np.array([範囲のI 1(行)]) (1100): \t k4_label = I + 1 \t label_file = np.array (0)== label.shape [0] ラベル:np.append(ラベル、ラベルファイル、軸= 0) shuffled_sample.shape [0] = = shuffled_label.shape [0] –