python實現mini-batch_Mini-Batch 、Momentum、Adam算法的實現

def random_mini_batches(X,Y,mini_batch_size=64,seed=0):"""從(X,Y)中創建一個隨機的mini-batch列表

參數:

X - 輸入數據,維度為(輸入節點數量,樣本的數量)

Y - 對應的是X的標簽,【1 | 0】(藍|紅),維度為(1,樣本的數量)

mini_batch_size - 每個mini-batch的樣本數量

返回:

mini-bacthes - 一個同步列表,維度為(mini_batch_X,mini_batch_Y)"""np.random.seed(seed)#指定隨機種子

m = X.shape[1]

mini_batches=[]#第一步:打亂順序

permutation = list(np.random.permutation(m)) #它會返回一個長度為m的隨機數組,且里面的數是0到m-1

shuffled_X = X[:,permutation] #將每一列的數據按permutation的順序來重新排列。

shuffled_Y = Y[:,permutation].reshape((1,m))"""#博主注:

#如果你不好理解的話請看一下下面的偽代碼,看看X和Y是如何根據permutation來打亂順序的。

x = np.array([[1,2,3,4,5,6,7,8,9],

[9,8,7,6,5,4,3,2,1]])

y = np.array([[1,0,1,0,1,0,1,0,1]])

random_mini_batches(x,y)

permutation= [7, 2, 1, 4, 8, 6, 3, 0, 5]

shuffled_X= [[8 3 2 5 9 7 4 1 6]

[2 7 8 5 1 3 6 9 4]]

shuffled_Y= [[0 1 0 1 1 1 0 1 0]]"""

#第二步,分割

num_complete_minibatches = math.floor(m / mini_batch_size) #把你的訓練集分割成多少份,請注意,如果值是99.99,那么返回值是99,剩下的0.99會被舍棄

for k inrange(0,num_complete_minibatches):

mini_batch_X= shuffled_X[:,k * mini_batch_size:(k+1)*mini_batch_size]

mini_batch_Y= shuffled_Y[:,k * mini_batch_size:(k+1)*mini_batch_size]"""#博主注:

#如果你不好理解的話請單獨執行下面的代碼,它可以幫你理解一些。

a = np.array([[1,2,3,4,5,6,7,8,9],

[9,8,7,6,5,4,3,2,1],

[1,2,3,4,5,6,7,8,9]])

k=1

mini_batch_size=3

print(a[:,1*3:(1+1)*3]) #從第4列到第6列

'''

[[4 5 6]

[6 5 4]

[4 5 6]]

'''

k=2

print(a[:,2*3:(2+1)*3]) #從第7列到第9列

'''

[[7 8 9]

[3 2 1]

[7 8 9]]

'''

#看一下每一列的數據你可能就會好理解一些"""mini_batch=(mini_batch_X,mini_batch_Y)

mini_batches.append(mini_batch)#如果訓練集的大小剛好是mini_batch_size的整數倍,那么這里已經處理完了

#如果訓練集的大小不是mini_batch_size的整數倍,那么最后肯定會剩下一些,我們要把它處理了

if m % mini_batch_size !=0:#獲取最后剩余的部分

mini_batch_X = shuffled_X[:,mini_batch_size *num_complete_minibatches:]

mini_batch_Y= shuffled_Y[:,mini_batch_size *num_complete_minibatches:]

mini_batch=(mini_batch_X,mini_batch_Y)

mini_batches.append(mini_batch)return mini_batches

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/533127.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/533127.shtml
英文地址,請注明出處:http://en.pswp.cn/news/533127.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

html5+shim腳本,HTML5探秘:用requestAnimationFrame優化Web動畫

requestAnimationFrame是什么?在瀏覽器動畫程序中,我們通常使用一個定時器來循環每隔幾毫秒移動目標物體一次,來讓它動起來。如今有一個好消息,瀏覽器開發商們決定:“嗨,為什么我們不在瀏覽器里提供這樣一個…

計算機科學與技術的專業論述,關于計算機科學專業的論文題目 計算機科學專業論文題目怎樣定...

【100道】關于關于計算機科學專業的論文題目匯總,作為大學生的畢業生應該明白了計算機科學專業論文題目怎樣定,選一個好的題目后續的計算機科學專業論文寫作起來會更輕松!一、比較好寫的計算機科學專業論文題目:1、計算機科學與技術專業應用型人才培養改革調研分析—…

ming window 交叉編譯_opencv3編譯pc端及交叉編譯arm端

環境: opensuse opencv3.4.1 交叉編譯器arm-openwrt-linux 作者:帥得不敢出門https://github.com/opencv/opencv/tree/3.4.1選擇右邊的"clone or download"按鈕進行下載,選擇下載zip我下的是opencv-3.4.1.zip, 3.4.1的版本號…

鎖定計算機 背景圖片,win7系統電腦更換鎖屏壁紙的方法

當win7系統電腦在一段時間不動的話就進入鎖屏狀態,然而很多用戶覺得默認的鎖屏壁紙不好看,就想要更換自己喜歡的鎖屏壁紙,那么win7怎么更換鎖屏壁紙呢?下面給大家講解一下win7系統電腦更換鎖屏壁紙的方法。1、同時按下窗口鍵winR組…

兩階段最小二乘法原理_R語言代寫工具變量與兩階段最小二乘法

我們要估計的模型是yabxcdeyabxcde,其中是解釋變量,,和是我們想要估計的系數。是控制變量,是治療變量。我們特別關注我們的治療效果對。生成數據首先,讓我們生成數據。假設 的工具變量和之間的相關矩陣如下&#xff1a…

計算機二級循環隊列知識點,考點!計算機二級考試公共基礎知識沖刺復習筆記:棧、隊列和循環隊列...

小編所收集到的相關計算機二級考試公共基礎知識沖刺復習筆記:棧、隊列和循環隊列的資料 大家要認真閱讀哦!1、棧(Stack)又稱堆棧。(1)棧是一種運算受限的線性表,其限制是僅允許在表的一端進行插入和刪除運算。人們把此端稱為棧頂,…

lua 字符串包含_Programming in Lualua學習第11期 Lua模塊與包

微信公眾號:GameToolDev關注可了解更多的游戲工具開發教程。問題或建議,請公眾號留言;從Lua 5.1開始,我們可以使用require和module函數來獲取和創建Lua中的模塊。從使用者的角度來看,一個模塊就是一個程序庫,可以通過r…

學計算機優盤多少內存夠用,u盤建議買多大內存的

大家好,我是時間財富網智能客服時間君,上述問題將由我為大家進行解答。u盤建議買多大內存主要看用途,一般容量為:1G、2G、4G、8G、16G、32G、64G、128G、256G、512G、1T,具體來說:1、如果是用來存放視頻的&…

.net 從txt中讀取行數據_【VBA項目】從指定文件中讀取數據并繪制圖表

VBA 是一種很久遠的編程語言,但并不過時。在滿足以下兩個條件時,借助 VBA 可以極大的提升生產率,降低出錯率:你的電腦上不允許自主安裝軟件; 你需要執行的工作中大部分的步驟都是固定且重復的。項目背景近期接到一個工…

本地攝像頭應用到遠程計算機,遠程攝像頭設置

可以的,智能家用監控攝像頭,只要你手機有網,千里之外打開手機都可以查看視頻,而且智能攝像頭主要用于看家看孩子看老人照看貓貓狗狗等寵物的。智能攝像頭,與市面上普通的事件錄制不一樣,它可以實現7*24小時…

axure實現復選框全選_jq簡單的全選、反選和全不選效果

jquery是很實用和方便的前端效果庫,可以讓我減少很多的操作和節省很多的時間。今天,我們來說一下jq的全選、全不選和反選效果,本篇講的是最簡單簡潔的jq全選、全不選和反選的例子。如果還有什么其他的功能要求可自己根據所學到的基礎來擴展一…

計算機設備管理器驅動,設備管理器安裝驅動程序的詳細教程

系統出現問題,很多人都會選擇重裝系統。但系統重裝后,我們所做的第一件事,就是安裝驅動。有的驅動程序有安裝包,直接安裝就行了。但是有的驅動是只有驅動程序文件,而沒有執行程序,這時候就需要通過設備管理…

ef執行原生sql語句_EF Core中執行原生SQL語句

一、課程介紹之所以今天錄制這個系列文章的主要原因是,想在快速幫助到大家上手在ASP.NET Core WebAPI中結合EF Core來操作我們的數據庫。EF Core的基礎文章和基礎課程實在是太多了,那么阿笨既然也來錄制這個系列課堂,阿笨想必肯定會給大家帶來…

華立學院計算機組成原理考試,廣東工業大學華立學院計算機組成原理期末復習重點...

廣工華立-2015-2016學年度-計算機組成原理考試復習一、考試題型:分為選擇、判斷、填空、簡述題四大類。其中選擇題有大約三分之一送分,大題占了50分、題目從課后作業出、重點大題為:指令方面;芯片連接;硬盤計算外存&am…

電路串聯和并聯圖解_一個關于交流電路諧振現象的仿真實驗

對于一個具有電阻、電感、電容的交流電路中,交流電源兩端的電壓一般不和它輸出的電流同相位。如果調節電路的參數或者電源頻率使它們同相位,這時電路就發生了諧振現象。按照發生諧振現象的電路不同,可以分為串聯諧振和并聯諧振。1、串聯諧振在…

sync不生效 vue_Vue實戰項目-記賬器-重要知識點匯總

歷時3周,記賬器項目終于可以運行了,這次項目是基于Vue開發,用到了typeScript和Scss,下面基于項目做一個階段性的總結,回顧一下項目中用到的知識點。一.組件一開始用的是JS對象的寫法:構造選項:{ data(){ret…

開設計算機課程的必要性,學前教育專業開設計算機音樂制作課程的必要性與可行性...

學前教育專業開設計算機音樂制作課程的必要性與可行性李 萍430061【期刊名稱】課程教育研究【年(卷),期】2012(000)020【總頁數】1一、學前教育專業開設音樂相關課程的現狀二、現代教育的新型特點,計算機音樂及制作的發展概況三、計算機音樂制作在學前教育專業開設的…

fifo頁面置換算法設計思路_千萬級并發!如何設計一個多級緩存系統?

什么是一個多級緩存系統?它有什么用?我們又如何設計一個多級緩存系統?圖片來自 Pexels所謂多級緩存系統,就是指在一個系統的不同的架構層級進行數據緩存,以提升訪問效率。我們都知道,一個緩存系統,它面臨著許多問題&#xff0c…

廣東省計算機學校哪所最好,廣東省哪個技校比較好哪里好

湖北省有少數大中專院校在教育事業中,無論是投入還是創辦教育學院,都比較好,的話就是至少能賺到三成。至于那些綜合性、公益性大的院校,可能要好幾千塊錢不是問題,畢竟我們是藝術類的,所以畢竟整體上看&…

apple quicktime怎么在ppt中用_PPT情感專題大賞No. 007:一份這就是街舞第三季主題PPT(上集)...

Hello,大家好,這里是千師傅小作坊第35期,我是你們的老朋友千千。熟悉千師傅小作坊的人都知道,千師傅特別喜歡看綜藝,尤其是音樂、表演、舞蹈類。作為一個十八線PPT設計師,如果我看到好看的節目視覺設計&…