输出最大值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.mzph.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之间,所有的…