我對(duì)機(jī)器學(xué)習(xí)和 Tensorflow 比較陌生,我想嘗試在 MNIST 數(shù)據(jù)集上實(shí)現(xiàn)小批量梯度下降。但是,我不確定應(yīng)該如何實(shí)施它。(旁注:訓(xùn)練圖像(28px x 28px)和標(biāo)簽存儲(chǔ)在 Numpy 數(shù)組中)目前,我可以看到兩種不同的實(shí)現(xiàn)方式:我的訓(xùn)練圖像位于 [60000,28,28] 的 Numpy 數(shù)組中。將其重塑為 [25(批次數(shù))、2400(批次中的圖像數(shù))、28,28],然后使用 for 循環(huán)調(diào)用每個(gè)批次并將其傳遞給 model.compile() 方法。我對(duì)這種方法唯一擔(dān)心的是 for 循環(huán)本質(zhì)上很慢,而矢量化實(shí)現(xiàn)會(huì)快得多。將圖像和標(biāo)簽組合成一個(gè)tensorflow數(shù)據(jù)集對(duì)象,然后調(diào)用Dataset.batch()方法和Dataset.prefetch()方法,然后將數(shù)據(jù)傳遞給model.compile()方法。唯一的問題是我的數(shù)據(jù)不會(huì)保留為 Numpy 數(shù)組,我認(rèn)為它比張量流數(shù)據(jù)集對(duì)象具有更大的靈活性。這兩種方法中哪一種最適合實(shí)施,或者是否有我不知道的第三種最佳方法?
如何在Tensorflow 2中實(shí)現(xiàn)小批量梯度下降?
慕的地6264312
2023-07-05 16:39:00