首页 > 其他分享 >多层感知机

多层感知机

时间:2023-07-29 17:11:55浏览次数:34  
标签:loss num nd 多层 感知机 train output data

# 多层感知机

# 获取数据
import d2lzh
from mxnet import autograd

batch_size = 256
train_data, test_data = d2lzh.load_data_fashion_mnist(batch_size)

# 读入数据
from mxnet import ndarray as nd

num_input = 28 * 28
num_output = 10

num_hidden = 256  # 中间多加了一层
weight_scale = .01

w1 = nd.random_normal(shape=(num_input, num_hidden), scale=weight_scale)
b1 = nd.zeros(num_hidden)

w2 = nd.random_normal(shape=(num_hidden, num_output), scale=weight_scale)
b2 = nd.zeros(num_output)

params = [w1, b1, w2, b2]

for param in params:
    param.attach_grad()


# 激活函数

def relu(x):  # 如果x大于0就返回x,否则返回0
    return nd.maximum(x, 0)


# 定义模型

def net(x):
    x = x.reshape((-1, num_input))
    h1 = relu(nd.dot(x, w1) + b1)
    output = nd.dot(h1, w2) + b2
    return output


# softmax 与 损失熵函数

from mxnet import gluon

softmax_cross_entropy = gluon.loss.SoftmaxCrossEntropyLoss()


def accuracy(y_hat, y):
    return (y_hat.argmax(axis=1) == y.astype('float32')).mean().asscalar()


# 训练

learning_rate = .5

for epoch in range(5):
    train_loss = 0.
    train_acc = 0.
    for data, label in train_data:
        with autograd.record():
            output = net(data)
            loss = softmax_cross_entropy(output, label)

        loss.backward()
        d2lzh.sgd(params, learning_rate, batch_size)

        train_loss += nd.mean(loss).asscalar()
        train_acc += accuracy(output, label)

    test_acc = d2lzh.evaluate_accuracy(test_data, net)
    print("Epoch %d. Loss: %f, Train acc %f, Test acc %f" % (
        epoch, train_loss / len(train_data), train_acc / len(train_data), test_acc / len(train_data)))

 

标签:loss,num,nd,多层,感知机,train,output,data
From: https://www.cnblogs.com/o-Sakurajimamai-o/p/17590115.html

相关文章

  • 多层感知机——pytorch版
    importtorchfromtorchimportnnfromd2limporttorchasd2lbatch_size=256train_iter,test_iter=d2l.load_data_fashion_mnist(batch_size)num_inputs,num_outputs,num_hiddens=784,10,256w1=nn.Parameter(torch.randn(num_inputs,num_hiddens,re......
  • 使用RecyclerView来实现多层级的数据
    ✍️作者简介:沫小北(专注于Android、Web、TCP/IP等技术方向)......
  • 使用Python统计下桌面某个文件夹下(含多层子文件夹)具体文件的数量(方法二)
    大家好,我是皮皮。一、前言前几天在Python最强王者群【东哥】问了一个Python自动化办公的问题,一起来看看吧。这个是他自己在实际工作中遇到的需求,正好遇到了这个问题,想着用Python来实现下。二、实现过程上一篇文章中已经分享了一个方法,这一篇文章继续分享另外一个方法,由【小王......
  • 使用Python统计下桌面某个文件夹下(含多层子文件夹)具体文件的数量(方法一)
    大家好,我是皮皮。一、前言前几天在Python最强王者群【东哥】问了一个Python自动化办公的问题,一起来看看吧。这个是他自己在实际工作中遇到的需求,正好遇到了这个问题,想着用Python来实现下。二、实现过程这里【郑煜哲·Xiaopang】给了一个提示,使用pathlib.glob()来进行解决,后来......
  • 感知机模型
    模型概念输入空间和输出空间\(\mathbfX\subseteq\mathbbR^n\)\(\mathbfY=\{+1,-1\}\)\(\mathbfx\in\mathbfX\)\(y\in\mathbfY\)假设空间\[f(\mathbfx)=sign(\mathbfw\cdot\mathbfx+b)\]\(w\)和\(b\)是感知机的模型参数,\(\mathbfw......
  • 使用RecyclerView来实现多层级的数据
    ✍️作者简介:沫小北(专注于Android、Web、TCP/IP等技术方向)......
  • mq json转换器 JSON泛型反序列化, 多层嵌套,使用 TypeReference
     需求解析JSON,并将其转换为对应的数据结构。例如:转换为Map<String,Object>  ......
  • python 多层list遍历
    Python多层列表遍历指南作为一名经验丰富的开发者,我很高兴能够帮助你学习如何在Python中实现多层列表的遍历。在本篇文章中,我将向你介绍整个遍历过程的流程,并为每一步提供相应的代码示例和注释。目录准备工作多层列表的遍历方法示例代码总结1.准备工作在开始之前,确保......
  • java 下载多层级zip 压缩包
    1.参数 2.代码实现  3.获取单个文件流程 4. ......
  • el-table中header里面写多层循环el-input无法修改其值
    之前看别人加了@input.native="change($event,index)"change(e,index){console.log('e',e,e.target.value);//this.tableColumns[index].fieldName=e;letobj=Object.assign({},obj,{fieldName:e.target.value});......