第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

更新列表中的 Python for 循環(huán)如何工作?

更新列表中的 Python for 循環(huán)如何工作?

慕妹3146593 2021-11-09 10:37:51
在邁克爾尼爾森的神經(jīng)網(wǎng)絡(luò)教程中,他有以下代碼:def update_mini_batch(self, mini_batch, eta):    """The ``mini_batch`` is a list of tuples ``(x, y)``, and ``eta``    is the learning rate."""    nabla_b = [np.zeros(b.shape) for b in self.biases]    nabla_w = [np.zeros(w.shape) for w in self.weights]    for x, y in mini_batch:        delta_nabla_b, delta_nabla_w = self.backprop(x, y)        nabla_b = [nb+dnb for nb, dnb in zip(nabla_b, delta_nabla_b)]        nabla_w = [nw+dnw for nw, dnw in zip(nabla_w, delta_nabla_w)]    self.weights = [w-(eta/len(mini_batch))*nw                    for w, nw in zip(self.weights, nabla_w)]    self.biases = [b-(eta/len(mini_batch))*nb                   for b, nb in zip(self.biases, nabla_b)]我明白元組和列表是什么,我明白 zip 函數(shù)在做什么,但我不明白變量 nb、dnb、nw 和 dnw 在這兩行代碼中是如何更新的:        nabla_b = [nb+dnb for nb, dnb in zip(nabla_b, delta_nabla_b)]        nabla_w = [nw+dnw for nw, dnw in zip(nabla_w, delta_nabla_w)]任何人都可以幫助解釋這兩行中發(fā)生的魔力嗎?
查看完整描述

2 回答

?
慕工程0101907

TA貢獻(xiàn)1887條經(jīng)驗(yàn) 獲得超5個(gè)贊

這兩行是 Python列表推導(dǎo)式的典型示例。

本質(zhì)上,對(duì)于您的第一個(gè)列表:

nabla_b = [nb+dnb for nb, dnb in zip(nabla_b, delta_nabla_b)]

這意味著:

  1. 取第一對(duì)zip(nabla_b, delta_nabla_b);命名它們nbdnb

  2. 添加它們 ( nb+dnb)

  3. 使結(jié)果成為新列表的第一個(gè)元素 nabla_b

  4. 轉(zhuǎn)到第 2 對(duì)等的第一步,將結(jié)果附加到nabla_b,直到所有對(duì)zip(nabla_b, delta_nabla_b)都用完

作為一個(gè)簡(jiǎn)單的例子,下面的列表推導(dǎo)式:

squares = [x**2 for x in range(10)]

print(squares)

# [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

等效于以下for循環(huán):


squares = []


for x in range(10):

    squares.append(x**2)


print(squares)

# [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

有關(guān)更多示例和快速介紹,請(qǐng)參見此處。


查看完整回答
反對(duì) 回復(fù) 2021-11-09
?
犯罪嫌疑人X

TA貢獻(xiàn)2080條經(jīng)驗(yàn) 獲得超4個(gè)贊

該zip函數(shù)將兩個(gè)列表逐個(gè)元素地粘在一起,這樣如果你給它:


a = [1, 2, 3, 4]

b = ["a", "b", "c", "d"]

zip(a, b) 會(huì)返回:


[(1, "a"), (2, "b"), ...]

(每個(gè)元素都是一個(gè)tuple)


您可以使用元素中每個(gè)變量之間的逗號(hào)來解包lists 的tuples(或lists)元素tuple:


for elem_a, elem_b in zip(a, b):

    print(elem_a, elem_b)

這將打?。?/p>


1 a

2 b

3 c

4 d

因此,在您的情況下,它將兩個(gè)列表nabla_b和delta_nabla_b元素相加,因此您會(huì)得到一個(gè)列表,其中每個(gè)元素都是壓縮列表中相應(yīng)元素的總和。


它可能看起來有點(diǎn)奇怪,因?yàn)閒or循環(huán)都在一行上,但這被稱為“列表理解”。簡(jiǎn)單的列表推導(dǎo)讀起來像英語。


查看完整回答
反對(duì) 回復(fù) 2021-11-09
  • 2 回答
  • 0 關(guān)注
  • 385 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)