神經網絡之萬能定理python-pytorch實現,可以擬合任意曲線

神經網絡之萬能定理python-pytorch實現,可以擬合任意曲線

博主,這幾天一直在做這個曲線擬合的實驗,講道理,網上可能也有很多這方面的資料,但是博主其實試了很多,效果只能對一般的曲線還行,稍微復雜一點的,效果都不太好,后來博主經過將近一天奮戰終于得到了這個最好的結果:

代碼:

from turtle import shape
import torch
from torch import nn
import pandas as pd
import numpy as np
from scipy.optimize import curve_fit
import matplotlib.pyplot as plt
from  utils import  parameters
from scipy.optimize import leastsq
from turtle import title
import numpy as np
import matplotlib.pyplot as plt
import torch as t
from torch.autograd import Variable as varclass BP(t.nn.Module):def __init__(self):super(BP,self).__init__()self.linear1 = t.nn.Linear(1,100)self.s = t.nn.Sigmoid()self.linear2 = t.nn.Linear(100,10)self.relu = t.nn.Tanh()self.linear3 = t.nn.Linear(10,1)self.Dropout = t.nn.Dropout(p = 0.1)self.criterion = t.nn.MSELoss()self.opt = t.optim.SGD(self.parameters(),lr=0.01)def forward(self, input):y = self.linear1(input)y = self.relu(y)#  y=self.Dropout(y)y = self.linear2(y)y = self.relu(y)# y=self.Dropout(y)y = self.linear3(y)y = self.relu(y)return yclass BackPropagationEx:def __init__(self):self.popt=[]#def  fun(self,t,a,Smax,S0,t0):#           return Smax - (Smax-S0) * np.exp(-a * (t-t0));def curve_fitm(self,x,y,epoch):xs =x.reshape(-1,1)xs=(xs-xs.min())/(xs.max()-xs.min())#   print(xs)ys = yys=(ys-ys.min())/(ys.max()-ys.min())xs = var(t.Tensor(xs))ys = var(t.Tensor(ys))#   bp = BP(traindata=traindata,labeldata=labeldata,node=[1,6,1],epoch=1000,lr=0.01)#  predict=updata(10,traindata,labeldata)model=BP()for e in range(epoch):#   print(e)index=0ls=0for x in xs:y_pre = model(x)#   print(y_pre)loss = model.criterion(y_pre,ys[index])index=index+1#       print("loss",loss)ls=ls+loss# Zero gradientsmodel.opt.zero_grad()# perform backward passloss.backward()# update weightsmodel.opt.step()if(e%2==0 ):print(e,ls)ys_pre = model(xs)loss = model.criterion(y_pre,ys)print(loss)plt.title("curve")plt.plot(xs.data.numpy(),ys.data.numpy(),label="ys")plt.plot(xs.data.numpy(),ys_pre.data.numpy(),label="ys_pre")plt.legend()plt.show()def predict(self,x):return self.fun(x,*self.popt)def plot(self,x,y,predict):plt.plot(x,y,'bo')#繪制擬合后的點plt.plot(x,predict,'r-')#擬合的參數通過*popt傳入plt.title("BP神經網絡")plt.show()

來看一下結果:
在這里插入圖片描述

你們可能覺得這個擬合好像也一般啊,其實不是,我這個問題非常難,基本上網上的代碼都是擬合效果很差的,數據的話,感興趣的,可以私聊我,我可以發給你們。
這個實現想做到博主這個效果的,很難,因為博主做了大量實現,發現,其實嚴格意義上的萬能定理的實現其實是需要很多的考慮的。
另外隨著訓練輪數和神經元的增加,實際上我們的效果可以真正實現萬能定理。

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

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

相關文章

java之抽象類

什么是抽象類? 抽象就是不能具體化,不能實例化 作為父類,讓子類去實現 abstract修飾類就是抽象類 abstract修飾方法就是抽象方法修飾符 abstract class 類名{修飾符 abstract 返回值類型 方法名(形參列表); }public abstract class A {//不…

CTFHUB--文件包含漏洞--RCE

文件包含漏洞 文件包含漏洞也是一種注入型漏洞,其本質就是輸入一段用戶能夠控制的腳本或者代碼,并讓服務端執行。有時候由于網站功能需求,會讓前端用戶選擇要包含的文件,而開發人員又沒有對要包含的文件進行安全考慮,…

CSS【詳解】居中對齊 (水平居中 vs 垂直居中)

水平居中 內部塊級元素的寬度要小于容器(父元素) 方案一&#xff1a;文本居中對齊&#xff08;內聯元素&#xff09; 限制條件&#xff1a;僅用于內聯元素 display:inline 和 display: inline-block; 給容器添加樣式 text-align:center<!DOCTYPE html> <html lang&q…

裴蜀定理(Bézout’s identity)

裴蜀定理&#xff08;Bzout’s identity&#xff09;是一個數論定理&#xff0c;也稱為貝祖等式。它表明&#xff0c;對于任意給定的兩個整數 a a a 和 b b b&#xff0c;存在整數 x x x 和 y y y&#xff0c;使得它們滿足以下方程&#xff1a; a x b y gcd ? ( a , b )…

【簡略知識】項目開發中,VO,BO,PO,DO,DTO究竟是何方妖怪?

前言 在項目開發中&#xff0c;是否需要定義VO&#xff08;視圖對象&#xff09;&#xff0c;BO&#xff08;業務對象&#xff09;&#xff0c;PO&#xff08;持久化對象&#xff09;&#xff0c;DO&#xff08;領域對象&#xff09;&#xff0c;DTO&#xff08;數據傳輸對象&…

CKKS EXPLAINED, PART 3: ENCRYPTION AND DECRYPTION

CKKS EXPLAINED, PART 3: ENCRYPTION AND DECRYPTION Introduction 在之前的文章中&#xff0c;CKKS解釋了第二部分&#xff1a;完整的編碼和解碼&#xff0c;我們看到了如何實現CKKS的編碼器和解碼器&#xff0c;這使我們能夠將向量轉換為多項式&#xff0c;反之亦然。這一步…

笨辦法學 Python3 第五版(預覽)(三)

原文&#xff1a;Learn Python the Hard Way, 5th Edition (Early Release) 譯者&#xff1a;飛龍 協議&#xff1a;CC BY-NC-SA 4.0 練習 30&#xff1a;假如 這是你將要輸入的下一個 Python 腳本&#xff0c;它向你介紹了if語句。輸入這個代碼&#xff0c;確保它能夠完美運行…

怎么快速編輯視頻

背景&#xff1a;怎么簡單快速編輯視頻 利用FFmpeg功能&#xff0c;簡單快速編輯視頻&#xff0c;如按9:16提前剪切視頻、替換背景音樂。 下載FFmpeg&#xff1a;https://ffmpeg.org/download.html 將FFmpeg的路徑添加到環境變量中&#xff1a; Windows&#xff1a;在系統的環…

Home-credit海外貸款信貸產品源碼/線上貸款產品大全/貸款平臺軟件源碼/海外借貸平臺

測試環境&#xff1a;Linux系統CentOS7.6、寶塔、PHP7.3、MySQL5.6&#xff0c;根目錄public&#xff0c;偽靜態laravel5&#xff0c;開啟ssl證書 語言&#xff1a;中文簡體、英文 laravel框架的程序有點多&#xff0c;這個團隊估計主要就是搞laravel開發的&#xff0c;基本上…

前端架構: 腳手架通用框架封裝之腳手架注冊和命令注冊開發(教程二)

腳手架注冊和命令注冊 1 &#xff09;腳手架的注冊 接上文&#xff0c;仍舊在 abc-cli 項目中參考&#xff1a;https://blog.csdn.net/Tyro_java/article/details/136381086之前初始化的時候&#xff0c;使用的是 yargs, 現在我們想要使用 commander在cli包中安裝 commander $…

2024 最新版 Compose material3 下拉刷新

2024 最新版 Compose material3 下拉刷新&#xff0c;版本 > 1.2.0 的 compose material3 已經更新了下拉刷新組件的 Api 見 https://developer.android.com/jetpack/androidx/releases/compose-material3?hlzh-cn#1.2.0 使用方法&#xff1a;https://developer.android.…

YOLOv9獨家原創改進|增加SPD-Conv無卷積步長或池化:用于低分辨率圖像和小物體的新 CNN 模塊

專欄介紹&#xff1a;YOLOv9改進系列 | 包含深度學習最新創新&#xff0c;主力高效漲點&#xff01;&#xff01;&#xff01; 一、文章摘要 卷積神經網絡(CNNs)在計算即使覺任務中如圖像分類和目標檢測等取得了顯著的成功。然而&#xff0c;當圖像分辨率較低或物體較小時&…

可以用來測試的接口

實際開發過程中&#xff0c;我們可以通過postman工具來測試接口 get請求 https://api.github.com/events?id1&nameuser post請求 http://httpbin.org/post 參數1&#xff1a;key1value1 參數2&#xff1a;key2value2

(C語言)回調函數

回調函數是什么&#xff1f; 回調函數就是?個通過函數指針調?的函數。 如果你把函數的指針&#xff08;地址&#xff09;作為參數傳遞給另?個函數&#xff0c;當這個指針被?來調?其所指向的函數 時&#xff0c;被調?的函數就是回調函數。回調函數不是由該函數的實現?…

技術閱讀周刊第十四期:常用的 Git 配置

技術閱讀周刊&#xff0c;每周更新。 歷史更新 20231122&#xff1a;第十一期20231129&#xff1a;第十二期20240105&#xff1a;第十三期&#xff1a;一些提高生產力的終端命令20240112&#xff1a;第十四期&#xff1a;Golang 作者 Rob Pike 在 GopherConAU 上的分享 How I w…

探索Manticore Search:開源全文搜索引擎的強大功能

在當今信息爆炸的時代&#xff0c;數據的快速檢索變得至關重要。無論是在電子商務網站、新聞門戶還是企業內部文檔&#xff0c;高效的搜索引擎都是確保用戶滿意度和工作效率的關鍵因素之一。而在搜索引擎領域&#xff0c;Manticore Search 作為一款開源的全文搜索引擎&#xff…

大模型(LLM)的量化技術Quantization原理學習

在自然語言處理領域&#xff0c;大型語言模型&#xff08;LLM&#xff09;在自然語言處理領域的應用越來越廣泛。然而&#xff0c;隨著模型規模的增大&#xff0c;計算和存儲資源的需求也急劇增加。為了降低計算和存儲開銷&#xff0c;同時保持模型的性能&#xff0c;LLM大模型…

2024最新算法:鸚鵡優化算法(Parrot optimizer,PO)求解23個基準函數(提供MATLAB代碼)

一、鸚鵡優化算法 鸚鵡優化算法&#xff08;Parrot optimizer&#xff0c;PO&#xff09;由Junbo Lian等人于2024年提出的一種高效的元啟發式算法&#xff0c;該算法從馴養的鸚鵡中觀察到的覓食、停留、交流和對陌生人行為的恐懼中汲取靈感。這些行為被封裝在四個不同的公式中…

c語言--qsort函數(詳解)

目錄 一、定義二、用qsort函數排序整型數據三、用qsort排序結構數據四、qsort函數的模擬實現 一、定義 二、用qsort函數排序整型數據 #include<stdio.h> scanf_S(int *arr,int sz) {for (int i 0; i < sz; i){scanf("%d", &arr[i]);} } int int_cmp(c…

消息隊列kafka

消息隊列解決的問題 1. 解耦&#xff0c;通過消息隊列實現應用之間解耦&#xff0c;模塊兒之間解耦 2. 跨線程/進程通信&#xff0c;通過消息隊列傳遞數據&#xff0c;實現不同線程/進程間通信 3. 提升系統穩定性&#xff0c;在高并發場景通過消息隊列緩沖&#xff0c;可以實…