Python-两层神经网络的类

简介: 简单使用

image.png

代码实现

import numpy as np
def numerical_gradient(f,x):

h=1e-4
# 生成与x形状相同的数组
grad=np.zeros_like(x)
for idx in range(x.size):
    tmp_val=x[idx]
    x[idx]=tmp_val+h
    fxh1=f(x)
    x[idx]=tmp_val-h
    fxh2=f(x)
    grad[idx]=(fxh1-fxh2)/2*h
    x[idx]=tmp_val
return grad
    

def sigmold(x):

return 1/(1+np.exp(-x))

def softmax(a):

c=np.max(a)
exp_a=np.exp(a-c)
sum_exp_a=np.sum(exp_a)
y=exp_a/sum_exp_a
return  y

def cross_enroty_errorly(y,t):

if y.ndim==1:
    t=t.reshape(1,t.size)
    y=y.reshape(1,y.size)
batch_size=y.shape(0)
return -np.sum(np.log(y[np.arange(batch_size),t]+1e-7))/batch_size

class TwolayerNet:

def __init__(self,input_size,hidden_size,output_size,weight_init_std=0.01):
    self.params={}
    self.params["w1"]=weight_init_std*np.random.randn(input_size,hidden_size)
    self.params["w2"]=weight_init_std*np.random.randn(hidden_size,output_size)
    self.params["b1"]=np.zeros(hidden_size)
    self.params["b2"]=np.zeros(output_size)
def predict(self,x):
    w1,w2=self.params["w1"],self.params["w2"]
    b1,b2=self.params["b1"],self.params["b2"]
    a1 = np.dot(x,w1) + b1
    z1 = sigmold(a1)
    a2 = np.dot(z1,w2) + b1
    y=softmax(a2)
    return y
def loss(self,x,t):
    y=self.predict(x)
    return cross_enroty_errorly(y,t)
def accury(self,x,t):
    y=self.predict(x)
    y=np.argmax(y,axis=1)
    t=np.argmax(1,axis=1)
    accury=np.sum(y==t)/float(x.shape[0])
    return accury
def numerical_gradient(self,x,t):
    loss_w=lambda w:self.loss(x,t)
    grads={}
    grads["w1"]=(loss_w,self.params["w1"])
    grads["b1"] = numerical_gradient(loss_w, self.params["b1"])
    grads["w2"] = numerical_gradient(loss_w, self.params["w2"])
    grads["b2"] = numerical_gradient(loss_w, self.params["b2"])
    return grads
相关文章
|
3月前
|
机器学习/深度学习 算法 量子技术
GQNN框架:让Python开发者轻松构建量子神经网络
为降低量子神经网络的研发门槛并提升其实用性,本文介绍一个名为GQNN(Generalized Quantum Neural Network)的Python开发框架。
65 4
GQNN框架:让Python开发者轻松构建量子神经网络
|
9天前
|
JavaScript Java 大数据
基于python的网络课程在线学习交流系统
本研究聚焦网络课程在线学习交流系统,从社会、技术、教育三方面探讨其发展背景与意义。系统借助Java、Spring Boot、MySQL、Vue等技术实现,融合云计算、大数据与人工智能,推动教育公平与教学模式创新,具有重要理论价值与实践意义。
|
2月前
|
运维 Linux 开发者
Linux系统中使用Python的ping3库进行网络连通性测试
以上步骤展示了如何利用 Python 的 `ping3` 库来检测网络连通性,并且提供了基本错误处理方法以确保程序能够优雅地处理各种意外情形。通过简洁明快、易读易懂、实操性强等特点使得该方法非常适合开发者或系统管理员快速集成至自动化工具链之内进行日常运维任务之需求满足。
126 18
|
27天前
|
机器学习/深度学习 移动开发 编解码
基于人工神经网络的类噪声环境声音声学识别(Matlab代码实现)
基于人工神经网络的类噪声环境声音声学识别(Matlab代码实现)
|
8天前
|
缓存 供应链 芯片
电子元件类商品 item_get - 商品详情接口深度分析及 Python 实现
电子元件商品接口需精准返回型号参数、规格属性、认证及库存等专业数据,支持供应链管理与采购决策。本文详解其接口特性、数据结构与Python实现方案。
|
1月前
|
机器学习/深度学习 算法 PyTorch
【Pytorch框架搭建神经网络】基于DQN算法、优先级采样的DQN算法、DQN + 人工势场的避障控制研究(Python代码实现)
【Pytorch框架搭建神经网络】基于DQN算法、优先级采样的DQN算法、DQN + 人工势场的避障控制研究(Python代码实现)
|
3月前
|
JSON 网络安全 数据格式
Python网络请求库requests使用详述
总结来说,`requests`库非常适用于需要快速、简易、可靠进行HTTP请求的应用场景,它的简洁性让开发者避免繁琐的网络代码而专注于交互逻辑本身。通过上述方式,你可以利用 `requests`处理大部分常见的HTTP请求需求。
317 51
|
27天前
|
机器学习/深度学习 算法 PyTorch
【DQN实现避障控制】使用Pytorch框架搭建神经网络,基于DQN算法、优先级采样的DQN算法、DQN + 人工势场实现避障控制研究(Matlab、Python实现)
【DQN实现避障控制】使用Pytorch框架搭建神经网络,基于DQN算法、优先级采样的DQN算法、DQN + 人工势场实现避障控制研究(Matlab、Python实现)
|
2月前
|
机器学习/深度学习 算法 调度
基于遗传算法GA算法优化BP神经网络(Python代码实现)
基于遗传算法GA算法优化BP神经网络(Python代码实现)
106 0
|
2月前
|
机器学习/深度学习 数据采集 TensorFlow
基于CNN-GRU-Attention混合神经网络的负荷预测方法(Python代码实现)
基于CNN-GRU-Attention混合神经网络的负荷预测方法(Python代码实现)

热门文章

最新文章

推荐镜像

更多