2
該程序使用循環隨機生成幾個人工神經網絡的權重,計算網絡的輸出並將其附加到每個數組的末尾,然後將成本附加到每個陣列的末尾。在不對數組進行排序的情況下運行時,該程序會正確執行所有計算,但是當我嘗試按每個數組中的最後一項對數組進行排序時,即使排序函數是在所有其他函數之後調用的,它似乎也會打斷循環。Python:對循環中產生的二維數組進行排序,導致錯誤
w, h = 9, 10
network = [[0 for x in range(w)] for y in range(h)]
def sigmoid(sigin):
return 1/(1 + math.exp(-sigin))
def netcal(x):
network[x].append(sigmoid((sigmoid(i1*network[x][0]+i2*network[x][1])*network[x][6])+(sigmoid(i1*network[x][2]+i2*network[x][3])*network[x][7])+(sigmoid(i1*network[x][4]+i2*network[x][5])*network[x][8])))
def seed():
b = 0
while b < 10:
y = 0
while y < 9:
network[b][y] = random.random()
y += 1
b += 1
def calall():
c = 0
while c < 9:
netcal(c)
print(network[c][9])
c += 1
def cost():
d = 0
while d < 9:
network[d].append(1 - network[d][9])
print(network[d][10])
d += 1
def sort():
sorted(network, key=lambda x: x[10])
def wait():
m.getch()
i1=0
i2=1
seed()
calall()
print("break")
cost()
sort()
print(network)
我仍然得到同樣的錯誤與 –
'network.sorted(鍵=拉姆達X:X [8])' –
@RyanHarper您的lambda中使用的索引「10」不存在。最後可以索引,如我的更新 –