Python:2次元形状(1,1024)の配列は3次元配列として読み込まれます

2020-02-14 python arrays scikit-learn

Pythonでは、配列のリストa、各形状(1、1024)、およびリストbのint {1,0,0,1…]があります 次に、それを使用して基本的なSVMをトレーニングします。 このエラーメッセージは常に表示されます。

ValueError: Found array with dim 3. Estimator expected <= 2.

しかし、形状は、私が2次元の形状を持っていることを教えてくれませんか? おそらく私の配列に何か問題がありますが、私は何を理解していないのですか。 私は助けてくれてうれしいです。

clf = svm.SVC(kernel='linear')
clf.fit(lista, listb)

配列の最初の10項目:

[array([[-0.00381735, -0.02317988, -0.06664753, ..., -0.03608917,
         0.06382023,  0.02493868]], dtype=float32), array([[-0.00381735, -0.02317988, -0.06664753, ..., -0.00363029,
         0.04429551,  0.04517733]], dtype=float32), array([[-0.00381735, -0.02317988, -0.06664753, ..., -0.01848865,
         0.03857033, -0.04184096]], dtype=float32), array([[-0.00381735, -0.02317988, -0.06664753, ..., -0.00812042,
        -0.01121382, -0.07293765]], dtype=float32), array([[-0.00381735, -0.02317988, -0.06664753, ...,  0.0026521 ,
        -0.00911874,  0.02558753]], dtype=float32), array([[-0.00381735, -0.02317988, -0.06664753, ...,  0.0128456 ,
        -0.00659914, -0.05465406]], dtype=float32), array([[-0.00381735, -0.02317988, -0.06664753, ..., -0.00801555,
        -0.06554729, -0.04112517]], dtype=float32), array([[-0.00381735, -0.02317988, -0.06664753, ...,  0.0015485 ,
        -0.03974668,  0.03871798]], dtype=float32), array([[-0.00381735, -0.02317988, -0.06664753, ...,  0.03571296,
         0.0097717 , -0.02939025]], dtype=float32), array([[-0.00381735, -0.02317988, -0.06664753, ..., -0.00178309,
        -0.00751928, -0.00501447]], dtype=float32)]

Answers

このように考えてください:

[(1, 1024),(1, 1024),(1, 1024)...(1, 1024)]

ここで1つの要素を選択するには、リスト内の位置、n in(n、1024)、k in(1、k)の3つのものが必要です。これは3次元のデータ構造です。

np.stack使用するか、 np.arraynp.reshape(len(list),1024)使用してリストを変換します。これにより、形状の一意の配列(n、1024)が得られます。

Related