2017-09-29 7 views
0

私は範囲の問題のうち、取得していますことを、ここで問題を見つけるように見えることはできません。指数(はIndexError:範囲外のリストインデックス)

layerZ = [layer_1,layer_2,layer_3,layer_4,layer_5,layer_6,layer_7,layer_8,layer_9,layer_10,layer_11,layer_12,layer_13] 
    for x in range(0, 12): 
     layerZ_total = [np.size(layerZ[x])] 
     layerZ_sp = [np.count_nonzero(layerZ[x]==0)] 
     layerZ_nonSp = [np.count_nonzero(layerZ[x])] 

     #Printing the results on scree to trace 
     print "Layer:",x+1,"Threshhold:",repr(ths),"Total Parameters: ",layerZ_totParam[x],"# Sp: ",layerZ_sp[x],"# Remained : ",layerZ_nonSp[x],"Sp %: ",float(layerZ_sp[x])/layerZ_total[x] 
+1

'layerZ_total'、' lazerZ_sp'、 'layerZ_nonSp'リストの長さはそれぞれ1です。なぜなら、それぞれの繰り返しを一から作成するからです。そのために、 '0'以外のインデックスは使用できませんが、' x'を使用してそれらのインデックスを作成しました。 –

+0

ああ、ありがとう@MartijnPieters。私はそれらのすべてのために 'layerZ_total [x] = ...'を使うべきです。右? – Amir

+3

あなたのコードが何をすべきか分かりません。私ができることは、エラーの理由を指摘することだけです。 –

答えて

1

これは役立つはずです:

あなたのコードで
layerZ = [layer_1,layer_2,layer_3,layer_4,layer_5,layer_6,layer_7,layer_8,layer_9,layer_10,layer_11,layer_12,layer_13] 

layerZ_total = [] 
layerZ_sp = [] 
layerZ_nonSp = [] 


for x in range(0, 12): 
    layerZ_total.append(np.size(layerZ[x])) 
    layerZ_sp.append(np.count_nonzero(layerZ[x]==0)) 
    layerZ_nonSp.append(np.count_nonzero(layerZ[x])) 

    #Printing the results on scree to trace 
    print "Layer:",x+1,"Threshhold:",repr(ths),"Total Parameters: ",layerZ_total[x],"# Sp: ",layerZ_sp[x],"# Remained : ",layerZ_nonSp[x],"Sp %: ",float(layerZ_sp[x])/layerZ_total[x] 

、リストlayerZ_totallayerZ_splayerZ_nonSpは01、あなたには、いくつかのx indexにアクセスしようとしたとき、したがって、それらの内側index 0で一つだけの要素を含む、ループ内の単一の値のたびに再初期化されましたエラーが表示されました。

そして、あなたはすべてのlayer_*layerZのリスト上の処理を行うようにした場合は(あなたの要件に応じて)は、あなたのlayerZリスト

にすることにより、すべての layerを処理 0 12に値を取ります。この xを行った後と range(0, 13)に必要
関連する問題