【BP神經網絡】實戰

1.參考Python實戰:BP神經網絡_bp神經網絡實戰python-CSDN博客

2.實踐

(1)運行環境

anocanda Powershell Prompt(anocanda3)

(2)創建虛擬環境,解決安裝包的版本問題

*打開終端(Terminal)或命令提示符(Command Prompt):

??? 在Windows上,可以通過搜索“cmd”來打開命令提示符。

*創建新的虛擬環境:
使用conda命令來創建虛擬環境。下面是一個基本的例子,其中myenv是你的環境名稱,而python=3.8指定了你希望在這個環境中使用的Python版本。

conda create --name myenv python=3.8

*激活虛擬環境:
創建完成后,你需要通過以下命令激活這個環境:

??? 對于Windows用戶:

conda activate myenv

*安裝所需要的包

(3)運行代碼:

import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']  # 使用黑體字體
plt.rcParams['axes.unicode_minus'] = False  # 解決負號 '-' 顯示為方塊的問題
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
from sklearn.model_selection import train_test_split# 定義學生成績數據集,這里為方便演示,手動創建示例數據
data = np.array([[80, 75],[85, 80],[70, 65],[90, 88],[75, 70],[88, 82],[65, 60],[92, 90]
])
final_scores = np.array([82, 88, 72, 92, 76, 86, 68, 95])# 劃分訓練集和測試集,按照8:2的比例劃分,設置隨機種子以保證每次劃分結果可重復
X_train, X_test, y_train, y_test = train_test_split(data, final_scores, test_size=0.2, random_state=42)# 構建BP神經網絡模型
model = Sequential()
# 輸入層,有2個神經元,對應2個輸入特征(作業成績和小測驗成績),激活函數為ReLU
model.add(Dense(16, input_dim=2, activation='relu'))
# 隱藏層,16個神經元,激活函數為ReLU
model.add(Dense(16, activation='relu'))
# 輸出層,1個神經元,對應期末考試成績,激活函數為線性(因為是回歸任務)
model.add(Dense(1, activation='linear'))# 編譯模型,指定優化器、損失函數和評估指標
model.compile(optimizer='adam',loss='mean_squared_error',metrics=['mae'])  # 平均絕對誤差(MAE)作為評估指標# 訓練模型,指定訓練輪數、批量大小等參數
epochs = 100
batch_size = 2
history = model.fit(X_train, y_train, epochs=epochs, batch_size=batch_size,validation_data=(X_test, y_test), verbose=0)# 獲取訓練過程中的損失和驗證損失歷史數據
loss_history = history.history['loss']
val_loss_history = history.history['val_loss']# 可視化訓練損失和驗證損失曲線
plt.figure(figsize=(10, 6))
plt.plot(range(1, epochs + 1), loss_history, label='訓練損失')
plt.plot(range(1, epochs + 1), val_loss_history, label='驗證損失')
plt.xlabel('輪數')
plt.ylabel('損失值')
plt.title('BP神經網絡訓練損失曲線')
plt.legend()
plt.show()# 使用訓練好的模型對測試集進行預測
y_pred = model.predict(X_test).flatten()  # 將二維數組展平為一維數組# 可視化預測結果與實際結果(簡單示例,以測試集為例)
plt.figure(figsize=(10, 6))
plt.scatter(range(len(y_test)), y_test, label='實際成績', color='blue')
plt.scatter(range(len(y_pred)), y_pred, label='預測成績', color='red')
plt.xlabel('樣本索引')
plt.ylabel('期末考試成績')
plt.title('BP神經網絡預測學生成績結果')
plt.legend()
plt.show()# 調試信息
print("y_test shape:", y_test.shape)
print("y_pred shape:", y_pred.shape)
print("y_test type:", type(y_test))
print("y_pred type:", type(y_pred))

(4)結果截圖:

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

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

相關文章

深度學習多模態人臉情緒識別:從理論到實踐

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到網站。https://www.captainbed.cn/north 文章目錄 1. 引言2. 技術框架與流程圖3. 核心算法解析3.1 視覺特征提取(CNN)3.2…

ssh通過22端口無法連接服務器問題處理

一,安全組開放22端口 root無法連接服務器,22端口也開放了,可能是防火墻開啟了攔截。 二,檢測防火墻狀態 查看防火墻狀態 sudo firewall-cmd --state 關閉防火墻 sudo systemctl stop firewalld 開啟防火墻 sudo systemctl sta…

element 的tab怎么動態根據參數值添加一個vue頁面

在使用 Element UI 的 Tabs 組件時,動態添加 Vue 組件或頁面可以通過操作 tabs 數組來實現。假設你要根據參數值來動態添加一個 Vue 頁面(這里假設是一個 Vue 組件),你可以按照以下步驟操作: 首先,確保你已…

Docker封裝鏡像、分發、部署實踐:nginx

在實際生產工作中,通常是沒法直接訪問公網的,但是有經常需要使用Docker部署應用,本文將介紹使用Docker從拉取nginx、打包、分發到加載部署nginx的全流程! 1 準備工作 1.1 安裝docker 請參考:Docker入門指南&#xff…

LuaJIT 學習(5)—— string.buffer 庫

文章目錄 Using the String Buffer LibraryBuffer ObjectsBuffer Method Overview Buffer Creation and Managementlocal buf buffer.new([size [,options]]) local buf buffer.new([options])buf buf:reset()buf buf:free() Buffer Writersbuf buf:put([str|num|obj] [,……

vue3:request.js中請求方法,api封裝請求,方法請求

方法一 request.js // 封裝GET請求 export const get (url, params {}) > {return request.get(url, { params }); }; // 封裝POST請求 export const post (url, data {}) > {return request.post(url, data); }; api封裝 import { post } from /utils/request; …

Ollama+OpenWebUI本地部署大模型

OllamaOpenWebUI本地部署大模型 前言Ollama使用Ollama安裝Ollama修改配置Ollama 拉取遠程大模型Ollama 構建本地大模型Ollama 運行本地模型:命令行交互Api調用Web 端調用 總結 前言 Ollama是一個開源項目,用于在本地計算機上運行大型語言模型&#xff0…

【機器學習】基于t-SNE的MNIST數據集可視化探索

一、前言 在機器學習和數據科學領域,高維數據的可視化是一個極具挑戰但又至關重要的問題。高維數據難以直觀地理解和分析,而有效的可視化方法能夠幫助我們發現數據中的潛在結構、模式和關系。本文以經典的MNIST手寫數字數據集為例,探討如何利…

【redis】發布訂閱

Redis的發布訂閱(Pub/Sub)是一種基于消息多播的通信機制,它允許消息的**發布者(Publisher)向特定頻道發送消息,而訂閱者(Subscriber)**通過訂閱頻道或模式來接收消息。 其核心特點如…

C語言零基礎入門:嵌入式系統開發之旅

C語言零基礎入門:嵌入式系統開發之旅 一、引言 嵌入式系統開發是當今科技領域中一個極具魅力和挑戰性的方向。從智能家居設備到汽車電子系統,從智能穿戴設備到工業自動化控制,嵌入式系統無處不在。而C語言,作為嵌入式開發中最常…

K8S學習之基礎二十三:k8s的持久化存儲之nfs

K8S持久化存儲之nfs ? 在 Kubernetes (k8s) 中使用 NFS(Network File System)作為存儲解決方案是一種常見的方式,特別是在需要共享存儲的場景中。以下是關于如何在 Kubernetes 中使用 NFS 存儲的詳細說明: 1. 準備 NFS 服務器 …

【Rust】枚舉和模式匹配——Rust語言基礎14

文章目錄 1. 枚舉類型1.2. Option 枚舉 2. match 控制流結構2.1. match 對綁定值的匹配2.2. Option<T> 的匹配2.3. 通配模式以及 _ 占位符 3. if let 控制流4. 小測試 1. 枚舉類型 枚舉&#xff08;enumerations&#xff09;&#xff0c;也被稱作 enums。枚舉允許你通過…

【商城實戰(25)】解鎖UniApp移動端適配秘籍,打造完美商城體驗

【商城實戰】專欄重磅來襲&#xff01;這是一份專為開發者與電商從業者打造的超詳細指南。從項目基礎搭建&#xff0c;運用 uniapp、Element Plus、SpringBoot 搭建商城框架&#xff0c;到用戶、商品、訂單等核心模塊開發&#xff0c;再到性能優化、安全加固、多端適配&#xf…

《C++ Primer》學習筆記(二)

第二部分&#xff1a;C標準庫 1.為了支持不同種類的IO處理操作&#xff0c;標準庫定義了以下類型的IO&#xff0c;分別定義在三個獨立的文件中&#xff1a;iostream文件中定義了用于讀寫流的基本類型&#xff1b;fstream文件中定義了讀寫命名文件的類型&#xff1b;sstream文件…

MATLAB風光柴儲微網粒子群算法

本程序實現了風光柴儲微網中的粒子群優化&#xff08;PSO&#xff09;算法&#xff0c;用于優化微網的能源調度問題。具體來說&#xff0c;程序考慮了光伏發電、風力發電、柴油機發電&#xff08;柴儲&#xff09;&#xff0c;并使用粒子群算法來優化這些能源的調度&#xff0c…

解決Windows版Redis無法遠程連接的問題

&#x1f31f; 解決Windows版Redis無法遠程連接的問題 在Windows系統下使用Redis時&#xff0c;很多用戶會遇到無法遠程連接的問題。尤其是在配置了Redis并嘗試通過工具如RedisDesktopManager連接時&#xff0c;可能會報錯“Cannot connect to ‘redisconnection’”。今天&am…

解決 HTTP 請求中的編碼問題:從亂碼到正確傳輸

文章目錄 解決 HTTP 請求中的編碼問題&#xff1a;從亂碼到正確傳輸1. **問題背景**2. **亂碼問題的原因**2.1 **客戶端編碼問題**2.2 **請求頭缺失**2.3 **服務器編碼問題** 3. **解決方案**3.1 **明確指定請求體編碼**3.2 **確保請求頭正確**3.3 **動態獲取響應編碼** 4. **調…

VS Code 配置優化指南

目錄 一、安裝與基礎設置1. 安裝 VS Code2. 中文語言包 二、插件推薦三、常見配置項與優化1. 用戶 / 工作區設置2. 全局配置 / Settings Sync3. 常用設置示例 四、性能優化五、調試與終端配置1. 調試配置2. 內置終端配置 六、快捷鍵配置七、美觀與主題八、總結 VS Code&#xf…

基于NXP+FPGA永磁同步電機牽引控制單元(單板結構/機箱結構)

永磁同步電機牽引控制單元&#xff08;單板結構/機箱結構&#xff09; 永磁同步電機牽引控制單元&#xff08;TCU-PMSM&#xff09;用于牽引逆變器-永磁同步電機構成的牽引電傳動系統&#xff0c;采用軸控方式。執行高性能永磁同步電機復矢量控制策略&#xff0c;具有響應迅速…

/etc/sysconfig/jenkins 沒有這個文件

在 CentOS 或其他基于 Red Hat 的 Linux 系統中&#xff0c;/etc/sysconfig/jenkins 文件通常用來存儲 Jenkins 的配置參數&#xff0c;例如 JENKINS_HOME 的路徑。但是&#xff0c;如果你發現沒有這個文件&#xff0c;你可以通過以下幾種方式來解決或確認&#xff1a; 檢查 J…