機器學習day4

自定義數據集 使用pytorch框架實現邏輯回歸并保存模型,然后保存模型后再加載模型進行預測

import numpy as np
import torch
import torch.nn as nn
import torch.optim as optimizer
import matplotlib.pyplot as pltclass1_points = np.array([[2.1, 1.8],[1.9, 2.4],[2.2, 1.2],[1.8, 1.5],[1.3, 1.7],[1.6, 2.1],[1.7, 1.4]])class2_points = np.array([[3.5, 3.4],[3.8, 2.7],[3.4, 2.9],[3.1, 3.6],[3.9, 2.4],[4.0, 2.8],[3.3, 2.5]])x_train = np.concatenate((class1_points, class2_points), axis=0)
y_train = np.concatenate((np.zeros(len(class1_points)), np.ones(len(class2_points))))x_train_tensor = torch.tensor(x_train, dtype=torch.float32)
y_train_tensor = torch.tensor(y_train, dtype=torch.float32)seed = 42
torch.manual_seed(seed)class LogisticRegreModel(nn.Module):def __init__(self):super(LogisticRegreModel, self).__init__()self.fc = nn.Linear(2, 1)def forward(self, x):x = self.fc(x)x = torch.sigmoid(x)return xmodel = LogisticRegreModel()cri = nn.BCELoss()
lr = 0.05
optimizer = optimizer.SGD(model.parameters(), lr=lr)fig, (ax1, ax2) = plt.subplots(1, 2)
epoch_list = []
epoch_loss = []epoches = 1000
for epoch in range(1, epoches + 1):y_pre = model(x_train_tensor)loss = cri(y_pre, y_train_tensor.unsqueeze(1))optimizer.zero_grad()loss.backward()optimizer.step()if epoch % 50 == 0 or epoch == 1:print(f"epoch:{epoch},loss:{loss.item()}")w1, w2 = model.fc.weight.data[0]b = model.fc.bias.data[0]slope = -w1 / w2intercept = -b / w2x_min, x_max = 0, 5x = np.array([x_min, x_max])y = slope * x + interceptax1.clear()ax1.plot(x, y, 'r')ax1.scatter(x_train[:len(class1_points), 0], x_train[:len(class1_points), 1])ax1.scatter(x_train[len(class1_points):, 0], x_train[len(class1_points):, 1])ax2.clear()epoch_list.append(epoch)epoch_loss.append(loss.item())ax2.plot(epoch_list, epoch_loss, 'b')plt.pause(1)

運行結果如下

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

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

相關文章

天道無極:論文明興衰中的規律自覺與文化覺醒

宇宙洪荒,星河輪轉,人類文明在浩渺時空中不過滄海一粟。當我們剖開青銅器上的饕餮紋,凝視量子計算機的硅基瞳孔,會發現所有文明興衰的背后都躍動著同一組密碼——對規律的認知與駕馭程度,構成了文明存續的底層邏輯。從兩河流域的楔形文字到華爾街的電子屏幕,從雅典學院的…

Linux解決輸入法卡死問題

說明:在Ubuntu系統中,如果您需要重啟輸入法服務(比如fcitx或ibus),您可以按照以下步驟操作。這些步驟適用于大多數基于Ubuntu的發行版,例如Ubuntu、Linux Mint等。 一、重啟Fcitx輸入法服務 1、使用Ctrl …

區間選點(貪心)

給定 NN 個閉區間 [ai,bi][ai,bi],請你在數軸上選擇盡量少的點,使得每個區間內至少包含一個選出的點。 輸出選擇的點的最小數量。 位于區間端點上的點也算作區間內。 輸入格式 第一行包含整數 NN,表示區間數。 接下來 NN 行,…

WPF基礎 | WPF 常用控件實戰:Button、TextBox 等的基礎應用

WPF基礎 | WPF 常用控件實戰:Button、TextBox 等的基礎應用 一、前言二、Button 控件基礎2.1 Button 的基本定義與顯示2.2 按鈕樣式設置2.3 按鈕大小與布局 三、Button 的交互功能3.1 點擊事件處理3.2 鼠標懸停與離開效果3.3 按鈕禁用與啟用 四、TextBox 控件基礎4.…

【huawei】云計算的備份和容災

目錄 1 備份和容災 2 災備的作用? ① 備份的作用 ② 容災的作用 3 災備的衡量指標 ① 數據恢復時間點(RPO,Recoyery Point Objective) ② 應用恢復時間(RTO,Recoyery Time Objective) 4…

Vue 封裝http 請求

封裝message 提示 Message.js import { ElMessage } from "element-plus";const showMessage (msg,callback,type)>{ElMessage({message: msg,type: type,duration: 3000,onClose:()>{if (callback) {callback();}}}); }const message {error: (msg,…

簡單的停車場管理系統的C語言實現示例

以下是一個簡單的停車場管理系統的C語言實現示例。該示例使用結構體來管理停車場的車位信息&#xff0c;并提供基本車輛進入、離開以及顯示停車場狀態功能。 #include <stdio.h> #include <stdlib.h> #include <string.h>#define MAX_SLOTS 10 // 最大車位數…

解除阿里云盤壓縮包分享限制的最新工具(2025年更新)

前言 前段時間&#xff0c;為了在阿里云盤分享一些資料&#xff0c;嘗試了好多種方法&#xff1a;改文件名后綴&#xff0c;打包自解壓&#xff0c;使用將壓縮文件追加在圖片文件后&#xff0c;還有的一些工具&#xff0c;雖然能偽裝文件但并不太好用&#xff0c;最后自己寫了…

HarmonyOS:創建應用靜態快捷方式

一、前言 靜態快捷方式是一種在系統中創建的可以快速訪問應用程序或特定功能的鏈接。它通常可以在長按應用圖標&#xff0c;以圖標和相應的文字出現在應用圖標的上方&#xff0c;用戶可以迅速啟動對應應用程序的組件。使用快捷方式&#xff0c;可以提高效率&#xff0c;節省了查…

21.0.2-為什么選FreeRTOS 第21章-FreeRTOS項目實戰--基礎知識之新建任務、啟動流程、編碼風格、系統配置

這個是全網最詳細的STM32項目教學視頻。 第一篇在這里: 視頻在這里 STM32智能小車V3-STM32入門教程-openmv與STM32循跡小車-stm32f103c8t6-電賽 嵌入式學習 PID控制算法 編碼器電機 跟隨 **V3:HAL庫開發、手把手教學下面功能&#xff1a;PID速度控制、PID循跡、PID跟隨、遙控、…

12 款開源OCR發 PDF 識別框架

2024 年 12 款開源文檔解析框架的選型對比評測&#xff1a;PDF解析、OCR識別功能解讀、應用場景分析及優缺點比較 這是該系列的第二篇文章&#xff0c;聚焦于智能文檔處理&#xff08;特別是 PDF 解析&#xff09;。無論是在模型預訓練的數據收集階段&#xff0c;還是基于 RAG…

DeepSeek R1:推理模型新紀元與價格戰

標題&#xff1a;DeepSeek R1&#xff1a;推理模型新紀元與價格戰 文章信息摘要&#xff1a; DeepSeek R1的發布標志著推理模型研究的重要轉折點&#xff0c;其采用四階段強化學習訓練方法&#xff0c;結合監督微調和拒絕采樣&#xff0c;顯著提升了模型的推理能力。這一進展不…

深度剖析C++17中的std::optional:處理可能缺失值的利器

文章目錄 一、基本概念與設計理念二、構建與初始化&#xff08;一&#xff09;默認構造&#xff08;二&#xff09;值初始化&#xff08;三&#xff09;使用std::make_optional&#xff08;四&#xff09;使用std::nullopt 三、訪問值&#xff08;一&#xff09;value()&#x…

擬合損失函數

文章目錄 擬合損失函數一、線性擬合1.1 介紹1.2 代碼可視化1.2.1 生成示例數據1.2.2 損失函數1.2.3 繪制三維圖像1.2.4 繪制等高線1.2.5 損失函數關于斜率的函數 二、 多變量擬合2.1 介紹2.2 代碼可視化2.2.1 生成示例數據2.2.2 損失函數2.2.3 繪制等高線 三、 多項式擬合3.1 介…

基于微信小程序的移動學習平臺的設計與實現(LW+源碼+講解)

專注于大學生項目實戰開發,講解,畢業答疑輔導&#xff0c;歡迎高校老師/同行前輩交流合作?。 技術范圍&#xff1a;SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬蟲、數據可視化、安卓app、大數據、物聯網、機器學習等設計與開發。 主要內容&#xff1a;…

【公因數匹配——暴力、(質)因數分解、哈希】

題目 暴力代碼&#xff0c;Acwing 8/10&#xff0c;官網AC #include <bits/stdc.h> using namespace std; const int N 1e610; vector<int> nums[N]; int main() {ios::sync_with_stdio(0);cin.tie(0);int n;cin >> n;for(int i 1; i < n; i){int x;ci…

127周一復盤 (165)玩法與難度思考

1.上午測試&#xff0c;小改了點東西&#xff0c; 基本等于啥也沒干。 匆忙趕往車站。 從此進入春節期間&#xff0c;沒有開發&#xff0c;而思考與設計。 2.火車上思考玩法與難度的問題。 目前的主流作法實際上并不完全符合不同玩家的需求&#xff0c; 對這方面還是要有自…

【數據結構】_鏈表經典算法OJ(力扣版)

目錄 1. 移除鏈表元素 1.1 題目描述及鏈接 1.2 解題思路 1.3 程序 2. 反轉鏈表 2.1 題目描述及鏈接 2.2 解題思路 2.3 程序 3. 鏈表的中間結點 3.1 題目描述及鏈接 3.2 解題思路 3.3 程序 1. 移除鏈表元素 1.1 題目描述及鏈接 原題鏈接&#xff1a;203. 移除鏈表…

編譯器gcc/g++ --【Linux基礎開發工具】

文章目錄 一、背景知識二、gcc編譯選項1、預處理(進行宏替換)2、編譯&#xff08;生成匯編&#xff09;3、匯編&#xff08;生成機器可識別代碼&#xff09;4、鏈接&#xff08;生成可執行文件或庫文件&#xff09; 三、動態鏈接和靜態鏈接四、靜態庫和動態庫1、動靜態庫2、編譯…

Java 注解與元數據

Java學習資料 Java學習資料 Java學習資料 一、引言 在 Java 編程中&#xff0c;注解&#xff08;Annotation&#xff09;和元數據&#xff08;Metadata&#xff09;是兩個重要的概念。注解為程序提供了一種在代碼中嵌入額外信息的方式&#xff0c;這些額外信息就是元數據。元…