輸出最大值MXNet實現

網絡結構,輸入為2個數,先經過10個節點的全連接層,再經過10個節點的ReLu,再經過10個節點的全連接層,再經過1個節點的全連接層,最后輸出。

#-*-coding:utf-8-*- import logging
import math
import random
import mxnet as mx # 導入 MXNet 庫
import numpy as np # 導入 NumPy 庫,這是 Python 常用的科學計算庫logging.getLogger().setLevel(logging.DEBUG) # 打開調試信息的顯示'''設置超參數'''
n_sample = 10000 # 訓練用的數據點個數
batch_size = 10 # 批大小
learning_rate = 0.1 # 學習速率
n_epoch = 10 # 訓練 epoch 數'''生成訓練數據'''
# 每個數據點是在 (0,1) 之間的 2 個隨機數
train_in = [[ random.uniform(0, 1) for c in range(2)] for n in range(n_sample)] 
train_out = [0 for n in range(n_sample)] # 期望輸出,先初始化為 0
for i in range(n_sample):# 每個數據點的期望輸出是 2 個輸入數中的大者train_out[i] = max(train_in[i][0], train_in[i][1])'''定義train_iter為訓練數據的迭代器,data為輸入數據,label為標簽對應train_out,shuffle代表每個epoch會隨機打亂數據'''
train_iter = mx.io.NDArrayIter(data = np.array(train_in), label = {'reg_label':np.array(train_out)}, batch_size = batch_size, shuffle = True)'''定義網絡結構,src為輸入層,fc1,fc2,fc3是全連接層,act1,act2是ReLu層,num_hidden代表神經元個數,data是輸入數據,name是輸出'''
src = mx.sym.Variable('data') # 輸入層
fc1  = mx.sym.FullyConnected(data = src, num_hidden = 10, name = 'fc1') # 全連接層
act1 = mx.sym.Activation(data = fc1, act_type = "relu", name = 'act1') # ReLU層
fc2  = mx.sym.FullyConnected(data = act1, num_hidden = 10, name = 'fc2') # 全連接層
act2 = mx.sym.Activation(data = fc2, act_type = "relu", name = 'act2') # ReLU層
fc3  = mx.sym.FullyConnected(data = act2, num_hidden = 1, name = 'fc3') # 全連接層
'''定義net為輸出層,采用線性回歸輸出,MXNet會自動使用MSE作為損失函數,輸入數據為fc3,輸出層命名為reg'''
net = mx.sym.LinearRegressionOutput(data = fc3, name = 'reg') # 輸出層'''定義變量module需訓練的網絡模組,網絡的輸出symbol為net,期望標簽名label_names為reg_label'''
module = mx.mod.Module(symbol = net, label_names = (['reg_label']))'''定義module.fit進行訓練'''
module.fit(train_iter, # 訓練數據的迭代器eval_data = None, # 在此只訓練,不使用測試數據eval_metric = mx.metric.create('mse'), # 輸出 MSE 損失信息#將權重和偏置初始化為在[-0.5,0.5]間均勻的隨機數initializer=mx.initializer.Uniform(0.5),optimizer = 'sgd', # 梯度下降算法為 SGD# 設置學習速率optimizer_params = {'learning_rate': learning_rate}, num_epoch = n_epoch, # 訓練 epoch 數# 每經過 100 個 batch 輸出訓練速度 batch_end_callback = None, epoch_end_callback = None, 
)#輸出最終參數
for k in module.get_params():print(k)

轉載于:https://www.cnblogs.com/cold-city/p/10460392.html

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

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

相關文章

discord linux_如何在Discord中應用文本格式

discord linuxDiscord allows for text-and audio-based chatting between gamers and other like-minded individuals. If you want to make a bigger impact on Discord, you can use formatting to jazz up your text-based messages. Here’s how. Discord允許游戲玩家和其…

一張圖看懂阿里云網絡產品[十二]云企業網

2019獨角獸企業重金招聘Python工程師標準>>> 摘要: 阿里云致力于為用戶提供優質、高效、穩定的網絡傳輸環境,云企業網(Cloud Enterprise Network)將提供一種能夠快速構建混合云和分布式業務系統的全球網絡,…

# 2019-2020.3 《java程序設計》第一周學習總結

2019-2020-3 《Java 程序設計》第一周學習總結 在本周的學習中,學習到了好多也收獲了好多,從最基礎的安裝虛擬機開始,根據老師的博客中的教程一步一步的進行,在這過程中也遇到了好多問題,因為是初步接觸Linux系統&…

聊聊Java反射

反射是Java最重要的特性。通過Java反射可以在運行時知道一個類的所有成員和方法,知道一個對象的類類型、成員和方法的所有信息,進而調用對象的方法或生成對象的代理或包裝類。Java是面向對象語言,除了靜態變量或原始數據類型外都是完全面向對…

01. 把存儲過程結果集SELECT INTO到臨時表

原文:01. 把存儲過程結果集SELECT INTO到臨時表在開發過程中,很多時候要把結果集存放到臨時表中,常用的方法有兩種。 一. SELECT INTO 1. 使用select into會自動生成臨時表,不需要事先創建 select * into #temp from sysobjects select * fro…

day5學python 基礎+裝飾器內容

基礎裝飾器內容 遞歸特性# 1.必須有一個明確的結束條件# 2.每次進入更深一層遞歸時,問題規模相比上次遞歸應有所減少# 3.遞歸效率不高 def run(n):print(n)if int(n/2)>0:return run(n / 2)print("-->",n) run(10) 局部變量與全局變量知識 1.全局變…

如何在Windows 10上跳過回收站以刪除文件

Windows 10 normally sends files you delete to the Recycle Bin. They’ll be kept until you empty it—or, in some cases, until Windows 10 automatically empties your Recycle Bin. Here’s how to skip the Recycle Bin and delete files immediately. Windows 10通常…

OSChina 周日亂彈 —— 我叫張一條

2019獨角獸企業重金招聘Python工程師標準>>> Osc亂彈歌單(2018)請戳(這里) 【今日歌曲】 萊布妮子 :分享Lube的單曲《Skoro dembel》 《Skoro dembel》- Lube 手機黨少年們想聽歌,請使勁兒戳&am…

面向對象初識

一. 面向對象初識 1.1 回顧面向過程編程vs函數式編程 # 面向過程編程 測量對象的元素個個數。 s1 fjdsklafsjda count 0 for i in s1:count 1l1 [1,2,3,4] count 0 for i in l1:count 1 面向過程編程def func(s):count 0for i in s:count 1return count …

iOS逆向:在任意app上開啟malloc stack追蹤內存來源

lldb有一個內存調試工具malloc stack,開啟以后就可以查看某個內存地址的malloc和free記錄,追蹤對象是在哪里創建的。 這個工具可以打印出對象創建的堆棧,而在逆向時,也經常需要追蹤某些方法的調用棧,如果可以隨時打印出…

【CH4302】Interval GCD

思路:線段樹維護a的差分數組的gcd, 因為$gcd(a_1,a_2,a_3,...,a_n)gcd(a_1,a_2-a_1,a_3-a_2,...,a_n-a_{n-1})$。 原區間修改可以轉化為差分數組上的兩次單點修改。 因為實際計算時還需要原數,所以用樹狀數組維護b的增減量。 詢問時&#xff…

Vue 的路由實現 Hash模式 和 History模式

Hash 模式: Hash 模式的工作原理是onhashchange事件,Window對象可以監聽這個事件... 可以通過改變路徑的哈希值,來實現歷史記錄的保存,發生變化的hash 都會被瀏覽器給保存下來,所以下次盡管瀏覽器沒有請求服務器,但是還…

我的第一次——網站備案

暫無內容 轉載于:https://my.oschina.net/vright/blog/1784979

使用LiveClick升級您的實時書簽

If you like to subscribe to feeds using Firefox’s Live Bookmarks feature, the LiveClick extension gives you so many upgrades that I can only cover the highlights of how great it is. 如果您想使用Firefox的“實時書簽”功能訂閱供稿,則LiveClick擴展程…

操作系統的概論梳理

轉載于:https://www.cnblogs.com/hclhechunlu/p/10477470.html

win7下如何顯示緬文和使用緬文輸入法?

windows 7 操作系統默認不支持緬文,所以緬文在win7上不能顯示,當然也沒有提供緬文輸入法。 一、顯示緬文 windows系統下顯示緬文字母只需要安裝緬文字體就可以了。目前常見的緬文字體就是Zawgyi-One,Zawgyi-One是一種廣泛使用的緬文字體。Zaw…

airpods2使用_如何使用AirPods和AirPods Pro:完整指南

airpods2使用Burdun Iliya/ShutterstockBurdun Iliya /快門Just bought yourself or received a new pair of AirPods or AirPods Pro? Welcome to the truly wireless earphones life. Setting up AirPods is quite straightforward, but here’s how to customize and get t…

LANG

修改 /etc/sysconfig/i18n 文件 locale 查看字符集 轉載于:https://www.cnblogs.com/todayORtomorrow/p/10479594.html

如何在iPhone上共享視頻之前從視頻中刪除音頻

Sometimes, you’d like to share a video with others, but the accompanying audio track is distracting or perhaps introduces privacy concerns. Luckily, there’s a quick way to silence a video using Photos on iPhone and iPad. Here’s how. 有時,您想…

入門第十一課 Python語句的嵌套

1、說個小故事:話說一個人買到一個治療瘙癢的偏方,在拆開無數層的包裝后,得到的只是一張寫著“撓撓”的小紙條兒。 嵌套,類似于在一個語句中,嵌套另一個語句。舉個栗子-_-!! 我們要計算從1到100之間,所有的…