首页 > 其他分享 >深度学习之路二 将上一篇的逻辑流水线变成稍微通用的模型

深度学习之路二 将上一篇的逻辑流水线变成稍微通用的模型

时间:2023-03-26 10:57:30浏览次数:31  
标签:inputs labels 一篇 self 稍微 output np 流水线 size

import numpy as np

class NeuralNetwork:
    def __init__(self, input_size, output_size):
        self.input_size = input_size
        self.output_size = output_size
        self.weights = np.random.rand(input_size, output_size)
        self.biases = np.random.rand(1, output_size)

    def forward(self, inputs):
        self.z = np.dot(inputs, self.weights) + self.biases
        self.output = np.tanh(self.z)
        return self.output

    def tanh_derivative(self):
        return 1 - np.power(self.output, 2)
    
    def backward(self, inputs, labels, learning_rate):
        error = self.output - labels
        d_weights = np.dot(inputs.T, error * self.tanh_derivative())
        d_biases = np.sum(error * (1 - np.power(self.output, 2)), axis=0, keepdims=True)
        self.weights -= learning_rate * d_weights
        self.biases -= learning_rate * d_biases

    def train(self, inputs, labels, learning_rate, epochs):
        for i in range(epochs):
            output = self.forward(inputs)
            self.backward(inputs, labels, learning_rate)
            loss = np.mean(np.square(labels - output))
            print("Epoch {}, Loss: {}".format(i, loss))

    def print(self):
        print("Weights: ", self.weights)
        print("Biases: ", self.biases)
        print("Output: ", self.output)

# Example usage
inputs = np.array([[1.0, 2.0]])
labels = np.array([[1.0]])
network = NeuralNetwork(input_size=2, output_size=1)
network.train(inputs, labels, learning_rate=0.1, epochs=100)
network.print()

 

标签:inputs,labels,一篇,self,稍微,output,np,流水线,size
From: https://www.cnblogs.com/dzqdzq/p/17256812.html

相关文章

  • 一篇氵文,计组复习
    2023.3.23福州天气非常的阴沉,黑云压城城欲摧~,然后计组明天小测,这波是,现学现卖。单位进制:1Byte=8bit,1K=210,1M=220,1G=2^30,1T=2^40存储器带宽:指单位时间内从存储器读出的......
  • 这是我在51CTO博客的第一篇博文
    一、自我介绍奋斗的学生党一枚,希望通过不断努力的学习,能找到一份满意的工作二、技术分享有时会打CTF比赛,分享CTFshow的一些简单的解题过程吧。信息收集web1&web2(看源码)查看......
  • 一篇带你掌握高项计算题
    0.首先来一波汇总1、时间管理:关键路径、PERT分析法2、成本管理:挣值分析、完工预测3、立项管理:静态(动态)投资回收期、投资回收率、内部收益率4、管理科学基础:线性规划、......
  • 手机号码归属地 API 实现防止骚扰电话,看这一篇就够了(内附设计思路和代码)
     在当今时代,骚扰电话已经成为了很多人日常生活中的一个常见问题,严重影响了人们的工作和生活。为了避免这种情况的发生,企业和机构可以采用手机号码归属地API,以提供更......
  • 计算机组成与设计 硬件软件接口 第五版 流水线部分笔记
    啊TODO1:为什么果壳不在IDU阶段读出寄存器?而要在后端?是跟超标量、乱序有关系吗?TODO2:修改PC难道比修改其它寄存器更快吗?TODO3:长流水线有什么缺点? TODO4:需要两......
  • FISCO BCOS区块链搭建说明(第一篇)
    说明:此文章针对的是Ubuntu版本的,若要其他版本可以参考官网FISCOBCOS官网链接:​​FISCOBCOS​​第一步:安装依赖这是ubuntu依赖sudoaptinstall-yopensslcurl第二步:创建......
  • 使用流水线插件实现持续集成、持续部署
    流水线插件是基于Rainbond插件体系扩展实现,通过插件化的方式,可以实现对Rainbond构建体系的扩展。该插件由社区合作伙伴拓维信息参与开发并贡献,底层是基于GitLabC......
  • 构建DevOps落地的自动化持续交付流水线的工具链
    DevOps流程涉及到需求管理(包括需求的任务管理、进度管理等)、持续集成、版本管理、代码编译、测试、配置管理和监控等多项工作任务。DevOps需要构建相应的工具链,将工作任......
  • 第四天(springBoot基础第一篇)
    springBoot基础1.什么是springBoot(概念及其特点)1.概念(1)介绍官网地址: https://spring.io/SpringBoot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应......
  • [计算机黑皮书]流水线概述
    内容来源:计算机组成与设计-硬件软件接口-原书第5版_13777443_(美)帕特森,(美)亨尼斯著_2015.07.pdf计算机黑皮书(191本):《神经计算原理》_11842123.pdf3D计算机图形学.原......