深度學習的應用

目錄

一、機器視覺

1.1 應用場景

1.2 常見的計算機視覺任務

1.2.1 圖像分類

1.2.2 目標檢測

1.2.3 圖像分割

二、自然語言處理

三、推薦系統

3.1 常用的推薦系統算法實現方案

四、圖像分類實驗補充

4.1 CIFAR-100 數據集實驗

實驗代碼

4.2?CIFAR-10

實驗代碼?


深度學習的應用領域廣泛且多樣,涵蓋了計算機視覺、自然語言處理、推薦系統等多個領域。

一、機器視覺

1.1 應用場景

計算機視覺(Computer Vision)又稱機器視覺(Machine Vision),是一門讓機器學會如何去“看”的學科,是深度學習技術的一個重要應用領域,被廣泛應用于安防、工業質檢和自動駕駛等場景。具體來說,就是讓機器去識別攝像機拍攝的圖片或視頻中的物體,檢測出物體所在的位置,并對目標物體進行跟蹤,從而理解并描述出圖片或視頻里的場景和故事,以此來模擬人腦視覺系統。因此,計算機視覺也通常被叫做機器視覺,其目的是建立能夠從圖像或者視頻中“感知”信息的人工系統。

計算機視覺技術經過幾十年的發展,已經在交通(車牌識別、道路違章抓拍)、安防(人臉閘機、小區監控)、金融(刷臉支付、柜臺的自動票據識別)、醫療(醫療影像診斷)、工業生產(產品缺陷自動檢測)等多個領域應用,影響或正在改變人們的日常生活和工業生產方式。未來,隨著技術的不斷演進,必將涌現出更多的產品和應用,為我們的生活創造更大的便利和更廣闊的機會。

1.2 常見的計算機視覺任務

1.2.1 圖像分類

圖像分類利用計算機對圖像進行定量分析,把圖像或圖像中的像元或區域劃分為若干個類別中的某一種。以下是一些常見的圖像分類算法:

1.2.2 目標檢測

對計算機而言,能夠“看到”的是圖像被編碼之后的數字,但它很難理解高層語義概念,比如圖像或者視頻幀中出現的目標是人還是物體,更無法定位目標出現在圖像中哪個區域。目標檢測的主要目的是讓計算機可以自動識別圖片或者視頻幀中所有目標的類別,并在該目標周圍繪制邊界框,標示出每個目標的位置。目標檢測應用場景覆蓋廣泛,如安全帽檢測、火災煙霧檢測、人員摔倒檢測、電瓶車進電梯檢測等。

以下是一些常見的目標檢測算法:

1.2.3 圖像分割

圖像分割指的是將數字圖像細分為多個圖像子區域的過程,即對圖像中的每個像素加標簽,這一過程使得具有相同標簽的像素具有某種共同視覺特性。圖像分割的目的是簡化或改變圖像的表示形式,使得圖像更容易理解和分析。圖像分割通常用于定位圖像中的物體和邊界(線、曲線等)。圖像分割的領域非常多,如人像分割、車道線分割、無人車、地塊檢測、表計識別等。

以下是一些常見的圖像分割算法:

  • U-Net

  • DeepLabv3+

  • PSPNet

  • GSCNN

  • HRNet

  • PP-LiteSeg

  • PP-HumanSeg

  • PP-Matting

二、自然語言處理

自然語言處理(Natural Language Processing,簡稱 NLP)是計算機科學和人工智能領域的一個重要方向。它主要研究人與計算機之間,使用自然語言進行有效通信的各種理論和方法。簡單來說,計算機以用戶的自然語言數據作為輸入,在其內部通過定義的算法進行加工、計算等系列操作后(用以模擬人類對自然語言的理解),再返回用戶所期望的結果。

隨著計算機和互聯網技術的發展,自然語言處理技術在各領域廣泛應用,我們平時常用的搜索引擎、新聞推薦、智能音箱等產品,都是以自然語言處理技術為核心的互聯網和人工智能產品。

三、推薦系統

互聯網和信息計算的快速發展,衍生了海量的數據,我們已經進入了一個信息爆炸的時代,每時每刻都有海量信息產生,然而這些信息并不全是個人所關心的,用戶從大量的信息中尋找對自己有用的信息也變得越來越困難。另一方面,信息的生產方也在絞盡腦汁地把用戶感興趣的信息送到用戶面前,每個人的興趣又不盡相同,所以可以實現千人千面的推薦系統應運而生。簡單來說,推薦系統是根據用戶的瀏覽習慣,確定用戶的興趣,通過發掘用戶的行為,將合適的信息推薦給用戶,滿足用戶的個性化需求,幫助用戶找到對他胃口但不易找到的信息或商品。

推薦系統在互聯網和傳統行業中都有著大量的應用。在互聯網行業,幾乎所有互聯網平臺都應用了推薦系統,如資訊新聞、影視劇、知識社區的內容推薦、電商平臺的商品推薦等;在傳統行業中,有些用于企業的營銷環節,如銀行的金融產品推薦、保險公司的保險產品推薦等。

3.1 常用的推薦系統算法實現方案

  1. 協同過濾推薦(Collaborative Filtering Recommendation)

    • 基于用戶的協同過濾:根據用戶的歷史喜好分析出相似興趣的人,然后給用戶推薦其他人喜歡的物品。例如,小李和小張對物品 A、B 都給了十分好評,那么可以認為小李和小張具有相似的興趣愛好,如果小李給物品 C 十分好評,那么可以把 C 推薦給小張。

    • 基于物品的協同過濾:根據用戶的歷史喜好分析出相似物品,然后給用戶推薦同類物品。例如,小李對物品 A、B、C 給了十分好評,小王對物品 A、C 給了十分好評,從這些用戶的喜好中分析出喜歡 A 的人都喜歡 C,物品 A 和 C 是相似的,如果小張給了 A 好評,那么可以把 C 也推薦給小張。

  2. 基于內容過濾推薦(Content-based Filtering Recommendation)

    • 核心是衡量出兩個物品的相似度。首先對物品或內容的特征作出描述,發現其相關性,然后基于用戶以往的喜好記錄,推薦給用戶相似的物品。例如,小張對物品 A 感興趣,而物品 A 和物品 C 是同類物品(從物品的內容描述上判斷),可以把物品 C 也推薦給小張。

  3. 組合推薦(Hybrid Recommendation)

    • 實際應用中往往不只采用某一種推薦方法,而是通過一定的組合方法將多個算法混合在一起,以實現更好的推薦效果,比如加權混合、分層混合等。具體選擇哪種方式和應用場景有很大關系。

四、圖像分類實驗補充

4.1 CIFAR-100 數據集實驗

CIFAR-100 數據集有 100 個類別,每個類別有 600 張大小為 32×32 的彩色圖像,其中 500 張作為訓練集,100 張作為測試集。對于每一張圖像,它有 fine_labelscoarse_labels 兩個標簽,分別代表圖像的細粒度和粗粒度標簽。對應下圖中的 classes 和 superclass。 也就是說, CIFAR100 數據集是層次的。

實驗代碼

# python --version     3.8.10
# PyTorch --version   2.3.1
# torchvision --version 0.18.1
import torch
import torch.nn as nn
import torch.optim as optim
import torchvision.transforms as transforms
from torch.utils.data import DataLoader
from torchvision.datasets import CIFAR100# 定義超參數
num_epochs = 5
batch_size = 64
learning_rate = 0.001kernel_size = 5
image = 32# 數據增強
# transform_train = transforms.Compose([
#     transforms.RandomHorizontalFlip(),
#     transforms.RandomCrop(32, padding=4),
#     transforms.ToTensor(),
#     transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))
# ])
#
# transform_test = transforms.Compose([
#     transforms.ToTensor(),
#     transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))
# ])
# # 加載和預處理數據
# train_dataset = CIFAR100(root='./', train=True, transform=transform_train, download=False)
# test_dataset = CIFAR100(root='./', train=False, transform=transform_test, download=False)# 加載和預處理數據
train_dataset = CIFAR100(root='./', train=True, transform=transforms.ToTensor(), download=False)
test_dataset = CIFAR100(root='./', train=False, transform=transforms.ToTensor(), download=False)
train_loader = DataLoader(dataset=train_dataset, batch_size=batch_size, shuffle=True)
test_loader = DataLoader(dataset=test_dataset, batch_size=batch_size, shuffle=False)# 定義CNN模型
class CNN(nn.Module):def __init__(self):super(CNN, self).__init__()self.conv1 = nn.Conv2d(in_channels=3, out_channels=6, kernel_size=5, padding=2, stride=1)self.relu1 = nn.ReLU()self.pool1 = nn.MaxPool2d(kernel_size=2, stride=2)self.conv2 = nn.Conv2d(in_channels=6, out_channels=16, kernel_size=5)self.relu2 = nn.ReLU()self.pool2 = nn.MaxPool2d(kernel_size=2, stride=2)self.fc1 = nn.Linear(in_features=16*6*6, out_features=100)def forward(self, x):x = self.pool1(self.relu1(self.conv1(x)))x = self.pool2(self.relu2(self.conv2(x)))x = x.view(-1, 16*6*6)  # Flattenx = self.fc1(x)return x# 訓練模型
def train(model, train_loader, optimizer, criterion, epochs):model.train()for epoch in range(epochs):for i, (images, labels) in enumerate(train_loader):optimizer.zero_grad()outputs = model.forward(images)loss = criterion(outputs, labels)loss.backward()optimizer.step()if i % 100 == 0:print(f"Epoch [{epoch + 1}/{epochs}], step {i + 1}/{len(train_loader)}, Loss: {loss.item()}")# 測試模型
def predict(model, test_loader):model.eval()correct = 0total = 0with torch.no_grad():for images, labels in test_loader:outputs = model.forward(images)_, predicted = torch.max(outputs.data, 1)total += labels.size(0)correct += (predicted == labels).sum().item()print(f'Accuracy on test set: {100 * correct / total:.2f}%')# 初始化模型、損失函數和優化器
model = CNN()
criterion = nn.CrossEntropyLoss()
optimizer = optim.Adam(model.parameters(), lr=learning_rate)# 訓練并測試模型
train(model, train_loader, optimizer, criterion, epochs=num_epochs)# 模型保存并測試
torch.save(model.state_dict(), 'cnn_state_dict.pth')# 加載模型
model = CNN()
model.load_state_dict(torch.load('cnn_state_dict.pth'))
predict(model, test_loader)

4.2?CIFAR-10

CIFAR-10 數據集是一個用于普適物體識別的計算機視覺數據集, 包含 60000張 32x32 的 RGB 彩色圖片, 總共分為 10 個類別。 每個類別包含 6000 張圖像, 其中 50000 張用于訓練集, 10000 張用于測試集。

實驗代碼?

# python --version     3.8.10
# PyTorch --version   2.3.1
# torchvision --version 0.18.1
import torch
import torch.nn as nn
import torch.optim as optim
import torchvision.transforms as transforms
from torch.utils.data import DataLoader
from torchvision.datasets import CIFAR10# 定義超參數
num_epochs = 1
batch_size = 64
learning_rate = 0.001# 加載和預處理數據
train_dataset = CIFAR10(root='./', train=True, transform=transforms.ToTensor(), download=False)
test_dataset = CIFAR10(root='./', train=False, transform=transforms.ToTensor(), download=False)
train_loader = DataLoader(dataset=train_dataset, batch_size=batch_size, shuffle=True)
test_loader = DataLoader(dataset=test_dataset, batch_size=batch_size, shuffle=False)# 定義CNN模型
class CNN(nn.Module):def __init__(self):super(CNN, self).__init__()self.conv1 = nn.Conv2d(in_channels=3, out_channels=6, kernel_size=5, padding=2, stride=1)self.relu1 = nn.ReLU()self.pool1 = nn.MaxPool2d(kernel_size=2, stride=2)self.conv2 = nn.Conv2d(in_channels=6, out_channels=16, kernel_size=5)self.relu2 = nn.ReLU()self.pool2 = nn.MaxPool2d(kernel_size=2, stride=2)self.fc1 = nn.Linear(in_features=16*6*6, out_features=10)def forward(self, x):x = self.pool1(self.relu1(self.conv1(x)))x = self.pool2(self.relu2(self.conv2(x)))x = x.view(-1, 16*6*6)  # Flattenx = self.fc1(x) #會自動加softmaxreturn x# 訓練模型
def train(model, train_loader, optimizer, criterion, epochs):model.train()for epoch in range(epochs):for i, (images, labels) in enumerate(train_loader):optimizer.zero_grad()outputs = model.forward(images)loss = criterion(outputs, labels)loss.backward()optimizer.step()if i % 100 == 0:print(f"Epoch [{epoch + 1}/{epochs}], step {i + 1}/{len(train_loader)}, Loss: {loss.item()}")# 測試模型
def predict(model, test_loader):model.eval()correct = 0total = 0with torch.no_grad():for images, labels in test_loader:outputs = model.forward(images)_, predicted = torch.max(outputs.data, 1)total += labels.size(0)correct += (predicted == labels).sum().item()print(f'Accuracy on test set: {100 * correct / total:.2f}%')# 初始化模型、損失函數和優化器
model = CNN()
criterion = nn.CrossEntropyLoss()
optimizer = optim.Adam(model.parameters(), lr=learning_rate)# 訓練并測試模型
train(model, train_loader, optimizer, criterion, epochs=num_epochs)# 模型保存并測試
torch.save(model.state_dict(), 'cnn_state_dict.pth')# 加載模型
model = CNN()
model.load_state_dict(torch.load('cnn_state_dict.pth'))
predict(model, test_loader)

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

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

相關文章

前端js高級25.1.30

原型:函數的組成結構 通過這個圖我們需要知道。 假設我們創建了一個Foo函數。 規則:Function.protoType是函數顯示原型。__proto__是隱式對象。 Function、Object、Foo函數的__proto__指向了Function.protoType說明。這三個都依托function函數來創建。…

android 音視頻系列引導

音視頻這塊的知識點自己工作中有用到,一直沒有好好做一個總結,原因有客觀和主觀的。 客觀是工作太忙,沒有成段時間做總結。 主觀自己懶。 趁著這次主動離職拿了n1的錢,休息一下,對自己的人生做一下總結,…

為AI聊天工具添加一個知識系統 之80 詳細設計之21 符號邏輯 之1

本文要點 要點 前面我們討論了本項目中的正則表達式。現在我們將前面討論的正則表達式視為狹義的符號文本及其符號規則rule(認識的原則--認識上認識對象的約束),進而在更廣泛的視角下將其視為符號邏輯及其符號原則principle(知識…

.NET Core緩存

目錄 緩存的概念 客戶端響應緩存 cache-control 服務器端響應緩存 內存緩存(In-memory cache) 用法 GetOrCreateAsync 緩存過期時間策略 緩存的過期時間 解決方法: 兩種過期時間策略: 絕對過期時間 滑動過期時間 兩…

自動駕駛---蘇箐對智駕產品的思考

1 前言 對于更高級別的自動駕駛,很多人都有不同的思考,方案也好,產品也罷。最近在圈內一位知名的自動駕駛專家蘇箐發表了他自己對于自動駕駛未來的思考。 蘇箐是地平線的副總裁兼首席架構師,同時也是高階智能駕駛解決方案SuperDri…

Sklearn 中的邏輯回歸

邏輯回歸的數學模型 基本模型 邏輯回歸主要用于處理二分類問題。二分類問題對于模型的輸出包含 0 和 1,是一個不連續的值。分類問題的結果一般不能由線性函數求出。這里就需要一個特別的函數來求解,這里引入一個新的函數 Sigmoid 函數,也成…

FPGA|使用quartus II通過AS下載POF固件

1、將開發板設置到AS下載擋位,或者把下載線插入到AS端口 2、打開quartus II,選擇Tools→Programmer→ Mode選擇Active Serial Programming 3、點擊左側Add file…,選擇 .pof 文件 →start 4、勾選program和verify(可選&#xff0…

.Net / C# 分析文件編碼 并將 各種編碼格式 轉為 另一個編碼格式 ( 比如: GB2312→UTF-8, UTF-8→GB2312)

相關庫 .Net 8 編碼識別: github.com/CharsetDetector/UTF-unknown <PackageReference Include"UTF.Unknown" Version"2.5.1" />代碼 using UtfUnknown;var dir_path "D:\\Desktop\\新建文件夾2\\新建文件夾"; var dir_new_path &quo…

32. C 語言 安全函數( _s 尾綴)

本章目錄 前言什么是安全函數&#xff1f;安全函數的特點主要的安全函數1. 字符串操作安全函數2. 格式化輸出安全函數3. 內存操作安全函數4. 其他常用安全函數 安全函數實例示例 1&#xff1a;strcpy_s 和 strcat_s示例 2&#xff1a;memcpy_s示例 3&#xff1a;strtok_s 總結 …

淺談網絡 | 容器網絡之Flannel

目錄 云原生網絡架構深度解構&#xff1a;Flannel的設計哲學與實現機制Flannel架構解析&#xff1a;三層核心設計原則UDP模式&#xff08;用戶態隧道&#xff09;VXLAN模式&#xff08;內核態隧道&#xff09;Host-GW模式&#xff08;直連路由&#xff09; 生產環境架構選型與調…

autosar bsw 的關鍵模塊

AUTOSAR&#xff08;AUTomotive Open System ARchitecture&#xff09;的**基礎軟件層&#xff08;BSW&#xff0c;Basic Software&#xff09;**是汽車電子系統標準化的核心&#xff0c;負責提供硬件抽象、通信、診斷、安全等基礎服務。以下是BSW的關鍵模塊及其功能分類&#…

hive:基本數據類型,關于表和列語法

基本數據類型 Hive 的數據類型分為基本數據類型和復雜數據類型 加粗的是常用數據類型 BOOLEAN出現ture和false外的其他值會變成NULL值 沒有number,decimal類似number 如果輸入的數據不符合數據類型, 映射時會變成NULL, 但是數據本身并沒有被修改 創建表 創建表的本質其實就是在…

2025創業思路和方向有哪些?

創業思路和方向是決定創業成功與否的關鍵因素。以下是一些基于找到的參考內容的創業思路和方向&#xff0c;旨在激發創業靈感&#xff1a; 一、技術創新與融合&#xff1a; 1、智能手機與云電視結合&#xff1a;開發集成智能手機功能的云電視&#xff0c;提供通訊、娛樂一體化體…

航空客戶價值的數據挖掘與分析(numpy+pandas+matplotlib+scikit-learn)

航空客戶價值的數據挖掘與分析(numpy+pandas+matplotlib+scikit-learn) K-Means聚類:https://en.wikipedia.org/wiki/K-means_clustering寫在前面 實現目的:基于K-Means聚類分析模型實現航空客戶價值大數據分析。 電腦系統:Windows 使用軟件:Anaconda(Jupyter Notebook)…

Three.js實戰項目02:vue3+three.js實現汽車展廳項目

文章目錄 實戰項目02項目預覽項目創建初始化項目模型加載與展廳燈光加載汽車模型設置燈光材質設置完整項目下載實戰項目02 項目預覽 完整項目效果: 項目創建 創建項目: pnpm create vue安裝包: pnpm add three@0.153.0 pnpm add gsap初始化項目 修改App.js代碼&#x…

年化19.3%策略集|ctpbee_api替換成openctp整合backtrader實盤方案(代碼+數據)

原創內容第782篇&#xff0c;專注量化投資、個人成長與財富自由。 昨天我們把backtraderctpbee的實盤整合代碼跑通了&#xff0c;年化19.3%&#xff0c;回撤僅8%的實盤策略&#xff0c;以及backtrader整合CTPBee做實盤&#xff08;附python代碼和數據&#xff09; 這兩周我們加…

Android Studio 正式版 10 周年回顧,承載 Androider 的崢嶸十年

Android Studio 1.0 宣發于 2014 年 12 月&#xff0c;而現在時間來到 2025 &#xff0c;不知不覺間 Android Studio 已經陪伴 Androider 走過十年歷程。 Android Studio 10 周年&#xff0c;也代表著了我的職業生涯也超十年&#xff0c;現在回想起來依然覺得「唏噓」&#xff…

OpenEuler學習筆記(十四):在OpenEuler上搭建.NET運行環境

一、在OpenEuler上搭建.NET運行環境 基于包管理器安裝 添加Microsoft軟件源&#xff1a;運行命令sudo rpm -Uvh https://packages.microsoft.com/config/centos/8/packages-microsoft-prod.rpm&#xff0c;將Microsoft軟件源添加到系統中&#xff0c;以便后續能夠從該源安裝.…

詳解python的修飾符

Python 中的修飾符&#xff08;Decorator&#xff09;是一種用于修改或擴展函數或類行為的工具。它們本質上是一個函數&#xff0c;接受另一個函數或類作為參數&#xff0c;并返回一個新的函數或類。修飾符通常用于在不修改原函數或類代碼的情況下&#xff0c;添加額外的功能。…

低代碼產品插件功能一覽

下圖是統計的目前市面上流行的低代碼、零代碼產品的插件功能。 產品名稱 產品類型 官方插件數量 支持拓展 官方插件功能 宜搭 零代碼 3 暫不支持 云打印、CAD看圖、打印表單詳情 微搭 低代碼 1 暫不支持 小程序 明道云 低代碼 2 支持 視圖、工作流節點 簡道…