[解決済み】Python、タプルのインデックスはタプルではなく、整数でなければならない?
2022-02-12 19:01:06
質問
何が起こっているのか全くわからないのですが、なぜかPythonがこれを投げてくるんです。参考までに、これは私が遊びで作っている小さなニューラルネットワークの一部ですが、np.arrayなどをたくさん使っているので、たくさんの行列が投げられており、ある種のデータ型の衝突を作り出していると思われます。多分、誰かがこれを解決するのを助けてくれるでしょう。なぜなら、私はそれを修正することができずに、あまりにも長い間このエラーを見つめてきたからです。
#cross-entropy error
#y is a vector of size N and output is an Nx3 array
def CalculateError(self, output, y):
#calculate total error against the vector y for the neurons where output = 1 (the rest are 0)
totalError = 0
for i in range(0,len(y)):
totalError += -np.log(output[i, int(y[i])]) #error is thrown here
#now account for regularizer
totalError+=(self.regLambda/self.inputDim) * (np.sum(np.square(self.W1))+np.sum(np.square(self.W2)))
error=totalError/len(y) #divide ny N
return error
yは長さ150のベクトルで、テキスト文書から直接取得したものです。yの各インデックスには1、2、3のいずれかのインデックスが含まれています。
#forward propogation algorithm takes a matrix "X" of size 150 x 3
def ForProp(self, X):
#signal vector for hidden layer
#tanh activation function
S1 = X.dot(self.W1) + self.b1
Z1 = np.tanh(S1)
#vector for the final output layer
S2 = Z1.dot(self.W2)+ self.b2
#softmax for output layer activation
expScores = np.exp(S2)
output = expScores/(np.sum(expScores, axis=1, keepdims=True))
return output,Z1
解決方法は?
あなたの
output
変数は
N x 4
の行列は、少なくとも
パイソン型
の意味です。それは
タプル
そして、タプル(間にコマのある2つの数字)でインデックスを作ろうとしていますが、これはnumpyの行列に対してのみ機能します。出力を表示して、問題が単なる型なのか(それならnp.arrayに変換すればいい)、それとも全く異なるものを渡しているのか(それなら何が原因であれ修正してください)を判断してください。
output
).
実施例
import numpy as np
output = ((1,2,3,5), (1,2,1,1))
print output[1, 2] # your error
print output[(1, 2)] # your error as well - these are equivalent calls
print output[1][2] # ok
print np.array(output)[1, 2] # ok
print np.array(output)[(1, 2)] # ok
print np.array(output)[1][2] # ok
関連
-
pythonサイクルタスクスケジューリングツール スケジュール詳解
-
[解決済み】 AttributeError: モジュール 'matplotlib' には属性 'plot' がない。
-
[解決済み] 'DataFrame' オブジェクトに 'sort' 属性がない
-
[解決済み】 TypeError: += でサポートされていないオペランド型: 'int' および 'list' です。
-
[解決済み] Pythonには文字列の'contains'サブストリングメソッドがありますか?
-
[解決済み] Pythonで現在時刻を取得する方法
-
[解決済み] Pythonで2つのリストを連結する方法は?
-
[解決済み] Pythonで例外を手動で発生(スロー)させる
-
[解決済み] Pythonで型をチェックする標準的な方法は何ですか?
-
[解決済み】Pythonに三項条件演算子はありますか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
PythonによるLeNetネットワークモデルの学習と予測
-
opencvとpillowを用いた顔認証システム(デモあり)
-
Python Decorator 練習問題
-
[解決済み】numpyの配列連結。"ValueError:すべての入力配列は同じ次元数でなければならない"
-
[解決済み】pygame.error: ビデオシステムが初期化されていない
-
[解決済み】socket.error: [Errno 48] アドレスはすでに使用中です。
-
[解決済み】syntaxError: 'continue' がループ内で適切に使用されていない
-
[解決済み】Python: SyntaxError: キーワードは式になり得ない
-
[解決済み】NameError: 名前 'self' が定義されていません。
-
[解決済み】ValueError: xとyは同じサイズでなければならない