pytorch基本操作2

torch.clamp

主要用于對張量中的元素進行截斷(clamping),將其限制在一個指定的區間范圍內。

函數定義

torch.clamp(input, min=None, max=None) → Tensor

參數說明

? ? input
? ? ? ? 類型:Tensor
? ? ? ? 需要進行截斷操作的輸入張量。

? ? min
? ? ? ? 類型:float 或 None(默認值)
? ? ? ? 指定張量中元素的最小值。小于 min 的元素會被截斷為 min 值。
? ? ? ? 如果設置為 None,則表示不限制最小值。

? ? max
? ? ? ? 類型:float 或 None(默認值)
? ? ? ? 指定張量中元素的最大值。大于 max 的元素會被截斷為 max 值。
? ? ? ? 如果設置為 None,則表示不限制最大值。

返回值

? ? 返回一個新的張量,其中元素已經被限制在 ([min, max]) 的范圍內。
? ? 原張量不會被修改(函數是非原地操作),除非使用 torch.clamp_ 以進行原地操作。

使用場景

torch.clamp 常見的應用場景包括:

  1. 避免數值溢出:限制張量中的數值在合理范圍內,防止出現過大或過小的值導致數值不穩定。
  2. 歸一化操作:將張量值限制在 [0, 1] 或 [-1, 1] 的范圍。
  3. 梯度截斷:在訓練神經網絡時避免梯度爆炸或梯度消失問題。

demo

僅設置最大值或最小值

x = torch.tensor([0.5, 2.0, -1.0, 3.0, -2.0])# 僅限制最大值為 1.0
result_max = torch.clamp(x, max=1.0)# 僅限制最小值為 0.0
result_min = torch.clamp(x, min=0.0)print(result_max)  # 輸出: tensor([0.5000, 1.0000, -1.0000, 1.0000, -2.0000])
print(result_min)  # 輸出: tensor([0.5000, 2.0000, 0.0000, 3.0000, 0.0000])

torch.nonzero

返回 input中非零元素的索引下標

無論輸入是幾維,輸出張量都是兩維,每行代表輸入張量中非零元素的索引位置(在所有維度上面的位置),行數表示非零元素的個數。
?

import torch
import torch.nn.functional as F
import mathX=torch.tensor([[0, 2, 0,  4],[5, 0, 7,  8]])
index = torch.nonzero(X)
# index = X.nonzero()
print(index)id_t = index.t_()
print(id_t)

tensor([[0, 1],
? ? ? ? [0, 3],
? ? ? ? [1, 0],
? ? ? ? [1, 2],
? ? ? ? [1, 3]])
tensor([[0, 0, 1, 1, 1],
? ? ? ? [1, 3, 0, 2, 3]])

?torch.sparse_coo_tensor

torch.sparse_coo_tensor(indices, values, size=None, *, dtype=None, device=None, requires_grad=False, check_invariants=None, is_coalesced=None)

創建一個Coordinate(COO) 格式的稀疏矩陣.

稀疏矩陣指矩陣中的大多數元素的值都為0,由于其中非常多的元素都是0,使用常規方法進行存儲非常的浪費空間,所以采用另外的方法存儲稀疏矩陣。

使用一個三元組來表示矩陣中的一個非0數,三元組分別表示元素(所在行,所在列,元素值),也就是上圖中每一個豎的三元組就是表示了一個非零數,其余值都為0,這樣就存儲了一個稀疏矩陣.構造這樣個矩陣需要知道所有非零數所在的行、所在的列、非零元素的值和矩陣的大小這四個值。

indices:此參數是指定非零元素所在的位置,也就是行和列,所以此參數應該是一個二維的數組,當然它可以是很多格式(ist, tuple, NumPy ndarray, scalar, and other types. )第一維指定了所有非零數所在的行數,第二維指定了所有非零元素所在的列數。例如indices=[[1, 4, 6], [3, 6, 7]]表示我們稀疏矩陣中(1, 3),(4, 6), (6, 7)幾個位置是非零的數所在的位置。
values:此參數指定了非零元素的值,所以此矩陣長度應該和上面的indices一樣長也可以是很多格式(list, tuple, NumPy ndarray, scalar, and other types.)。例如``values=[1, 4, 5]表示上面的三個位置非零數分別為1, 4, 5。
size:指定了稀疏矩陣的大小,例如size=[10, 10]表示矩陣大小為 10 × 10 10\times 10 10×10,此大小最小應該足以覆蓋上面非零元素所在的位置,如果不給定此值,那么默認是生成足以覆蓋所有非零值的最小矩陣大小。
dtype:指定返回tensor中數據的類型,如果不指定,那么采取values中數據的類型。
device:指定創建的tensor在cpu還是cuda上。
requires_grad:指定創建的tensor需不需要梯度信息,默認為False

import torchindices = torch.tensor([[4, 2, 1], [2, 0, 2]])
values = torch.tensor([3, 4, 5], dtype=torch.float32)
x = torch.sparse_coo_tensor(indices=indices, values=values, size=[5, 5])
print(x)
print('-----------------------------')
print(x.to_dense())

tensor(indices=tensor([[4, 2, 1],
? ? ? ? ? ? ? ? ? ? ? ?[2, 0, 2]]),
? ? ? ?values=tensor([3., 4., 5.]),
? ? ? ?size=(5, 5), nnz=3, layout=torch.sparse_coo)
-----------------------------
tensor([[0., 0., 0., 0., 0.],
? ? ? ? [0., 0., 5., 0., 0.],
? ? ? ? [4., 0., 0., 0., 0.],
? ? ? ? [0., 0., 0., 0., 0.],
? ? ? ? [0., 0., 3., 0., 0.]])

torch.max

import torch
import torch.nn.functional as F
import math# 創建一個二維張量
x = torch.tensor([[1, 3, 2], [4, 5, 6], [7, 8, 9]])# 返回最大值
value = torch.max(x)
print("value:", value)# 返回最大值及其索引
max_value, max_index = torch.max(x, 0)
print("Max value:", max_value)
print("Max index:", max_index)# 在第一個維度(行)上查找最大值,并保留形狀
max_value_row, max_index_row = torch.max(x, 0, keepdim=True)
print("dim=0 keeping shape: ", max_value_row)
print("dim=0 keeping shape: ", max_index_row)

value: tensor(9)
Max value: tensor([7, 8, 9])
Max index: tensor([2, 2, 2])
dim=0 keeping shape: ?tensor([[7, 8, 9]])
dim=0 keeping shape: ?tensor([[2, 2, 2]])

fastbev:

train

loss function?

F.binary_cross_entropy

F.binary_cross_entropy(
? ? input: Tensor, ?# 預測輸入
? ? target: Tensor, # 標簽
? ? weight: Optional[Tensor] = None, # 權重可選項
? ? size_average: Optional[bool] = None, ?# 可選項,快被棄用了
? ? reduce: Optional[bool] = None,
? ? reduction: str = "mean", ?# 默認均值或求和等形式
) -> Tensor:
?

?

  • input: 形狀為 (N, *) 的張量,表示模型的預測結果,取值范圍可以是任意實數。
  • target: 形狀為 (N, *) 的張量,表示真實標簽,取值為 0 或 1。

import torch
import torch.nn.functional as F
import mathrow, col = 2, 3
x = torch.randn(row, col)predict = torch.sigmoid(x)index = torch.randint(col, size = (row,), dtype=torch.long)
y = torch.zeros(row, col)
y[range(y.shape[0]), index] = 1
print(range(y.shape[0]))loss1 = F.binary_cross_entropy(predict, y)
print("loss1 ",loss1)def binary_cross_entropy(predict, y):loss = -torch.sum(y * torch.log(predict) + (1 - y) * torch.log(1 - predict)) / torch.numel(y)return lossloss2 = binary_cross_entropy(predict, y)
print("loss2 ", loss2)

range(0, 2)
loss1 ?tensor(1.1794)
loss2 ?tensor(1.1794)

F.binary_cross_entropy_with_logits

相比F.binary_cross_entropy函數,F.binary_cross_entropy_with_logits函數在內部使用了sigmoid函數.

F.binary_cross_entropy_with_logits = sigmoid +?F.binary_cross_entropy。

F.cross_entropy

多分類交叉熵損失函數

F.cross_entropy(input, target, weight=None, size_average=None, ignore_index=-100, reduce=None, reduction='mean')

參數說明:

? ? input:(N, C)形狀的張量,其中N為Batch_size,C為類別數。該參數對應于神經網絡最后一個全連接層輸出的未經Softmax處理的結果。
? ? target:一個大小為(N,)張量,其值是0 <= targets[i] <= C-1的元素,其中C是類別數。該參數包含一組給定的真實標簽(ground truth)。
? ? weight:采用類別平衡的加權方式計算損失值。可以傳入一個大小為(C,)張量,其中weight[j]是類別j的權重。默認為None。
? ? size_average:棄用,可以忽略。該參數已經被reduce參數取代了。
? ? ignore_index:指定被忽略的目標值的索引。如果目標值等于該索引,則不計算該樣本的損失。默認值為-100,即不忽略任何目標值。
? ? reduce:指定返回的損失值的方式。可以是“None”(不返回損失值)、“mean”(返回樣本損失值的平均值)和“sum”(返回樣本損失值的總和)。默認值為“mean”。
? ? reduction:與reduce參數等價。表示返回的損失值的方式。默認值為“mean”。

F.cross_entropy函數與nn.CrossEntropyLoss類是相似的,但前者更適合于控制更多的細節。

由于內部已經使用SoftMax函數處理,故兩者的輸入都不需要使用SoftMax處理。

import torch
import torch.nn.functional as F
import math# redictions:一個2維tensor,表示模型的預測結果。它的形狀是(2, 3),其中2是樣本數量,3是類別數量。每一行對應一個樣本的預測結果,每個元素表示該類別的概率。
# labels:一個1維tensor,表示樣本的真實標簽。它的形狀是(2,),其中2是樣本數量。
predictions = torch.tensor([[0.2, 0.3, 0.5], [0.8, 0.1, 0.1]])
labels = torch.tensor([2, 0])# 定義每個類別的權重
weights = torch.tensor([1.0, 2.0, 3.0])# 使用F.cross_entropy計算帶權重的交叉熵損失
loss = F.cross_entropy(predictions, labels, weight=weights)
print(loss) # tensor(0.8773)# 測試計算過程
pred = F.softmax(predictions, dim=1)
loss2 = -(weights[2] * math.log(pred[0, 2]) + weights[0]*math.log(pred[1, 0]))/4  # 4 = 1+3 對應權重之和
print(loss2) # 0.8773049571540321# 對于第一個樣本,它的預測結果為pred[0],真實標簽為2。根據交叉熵損失的定義,我們可以計算出它的損失為:
# -weights[2] * math.log(pred[0, 2])
# 對于第二個樣本,它的預測結果為pred[1],真實標簽為0。根據交叉熵損失的定義,我們可以計算出它的損失為:
# -weights[0] * math.log(pred[1, 0])

torch.nn.BCELoss

torch.nn.BCELoss(
? ? weight=None,?
? ? size_average=None,?
? ? reduce=None,?
? ? reduction='mean' # 默認計算的是批量樣本損失的平均值,還可以為'sum'或者'none'
)
?

torch.nn.BCEWithLogitsLoss

torch.nn.BCEWithLogitsLoss(
? ? weight=None,?
? ? size_average=None,?
? ? reduce=None,?
? ? reduction='mean', # 默認計算的是批量樣本損失的平均值,還可以為'sum'或者'none'
? ? pos_weight=None
)
?

import numpy as np
import torch
from torch import nn
import torch.nn.functional as Fy = torch.tensor([1, 0, 1], dtype=torch.float)
y_hat = torch.tensor([0.8, 0.2, 0.4], dtype=torch.float)bce_loss = nn.BCELoss()# nn.BCELoss()需要先對輸入數據進行sigmod
print("官方BCELoss = ", bce_loss(torch.sigmoid(y_hat), y))# nn.BCEWithLogitsLoss()不需要自己sigmod
bcelogits_loss = nn.BCEWithLogitsLoss()
print("官方BCEWithLogitsLoss = ", bcelogits_loss(y_hat, y))# 我們根據二分類交叉熵損失函數實現:
def loss(y_hat, y):y_hat = torch.sigmoid(y_hat)l = -(y * np.log(y_hat) + (1 - y) * np.log(1 - y_hat))l = sum(l) / len(l)return lprint('自己實現Loss = ', loss(y_hat, y))

# 可以看到結果值相同
官方BCELoss ? ? ? ? ? = ?tensor(0.5608)
官方BCEWithLogitsLoss = ?tensor(0.5608)
自己實現Loss ? ? ? ? ? = ?tensor(0.5608)
?

BCELoss與BCEWithLogitsLoss的關聯:BCEWithLogitsLoss = Sigmoid + BCELoss

import numpy as np
import torch
from torch import nn
import torch.nn.functional as Fy = torch.tensor([1, 0, 1], dtype=torch.float)
y_hat = torch.tensor([0.8, 0.2, 0.4], dtype=torch.float)bce_loss = nn.BCELoss()# nn.BCELoss()需要先對輸入數據進行sigmod
print("官方BCELoss = ", bce_loss(torch.sigmoid(y_hat), y))# nn.BCEWithLogitsLoss()不需要自己sigmod
bcelogits_loss = nn.BCEWithLogitsLoss()
print("官方BCEWithLogitsLoss = ", bcelogits_loss(y_hat, y))# 我們根據二分類交叉熵損失函數實現:
def loss(y_hat, y):y_hat = torch.sigmoid(y_hat)l = -(y * np.log(y_hat) + (1 - y) * np.log(1 - y_hat))l = sum(l) / len(l)return lprint('自己實現Loss = ', loss(y_hat, y))

# 可以看到結果值相同
官方BCELoss ? ? ? ? ? = ?tensor(0.5608)
官方BCEWithLogitsLoss = ?tensor(0.5608)
自己實現Loss ? ? ? ? ? = ?tensor(0.5608)
?

torch.nn.CrossEntropyLoss()

torch.nn.CrossEntropyLoss(
? ? weight=None,?
? ? size_average=None,?
? ? ignore_index=-100,?
? ? reduce=None,?
? ? reduction='mean',?
? ? label_smoothing=0.0 # 同樣,默認計算的是批量樣本損失的平均值,還可以為'sum'或者'none'
)

?

?

  • 在關于二分類的問題中,輸入交叉熵公式的網絡預測值必須經過Sigmoid進行映射
  • 而在多分類問題中,需要將Sigmoid替換成Softmax,這是兩者的一個重要區別
  • CrossEntropyLoss = softmax+log+nll_loss的集成

多分類交叉熵損失函數

?

cross_loss = nn.CrossEntropyLoss(reduction="none") # 設置為none,這里輸入每個樣本的loss值,不計算平均值
target = torch.tensor([0, 1, 2])predict = torch.tensor([[0.9, 0.2, 0.8],[0.5, 0.2, 0.4],[0.4, 0.2, 0.9]]) # 未經過softmax
print('官方實現CrossEntropyLoss: ', cross_loss(predict, target))# 自己實現方便理解版本的CrossEntropyLoss
def cross_loss(predict, target, reduction=None):all_loss = []for index, value in enumerate(target):# 利用多分類簡化后的公式,對每一個樣本求loss值loss = -predict[index][value] + torch.log(sum(torch.exp(predict[index])))all_loss.append(loss)all_loss = torch.stack(all_loss)if reduction == 'none':return all_losselse:return torch.mean(all_loss)print('實現方便理解的CrossEntropyLoss: ', cross_loss(predict, target, reduction='none'))# 利用F.nll_loss實現的CrossEntropyLoss
def cross_loss2(predict, target, reduction=None):# Softmax的缺點:# 1、如果有得分值特別大的情況,會出現上溢情況;# 2、如果很小的負值很多,會出現下溢情況(超出精度范圍會向下取0),分母為0,導致計算錯誤。# 引入log_softmax可以解決上溢和下溢問題logsoftmax = F.log_softmax(predict)print('target = ', target)print('logsoftmax:\n', logsoftmax)# nll_loss不是將標簽值轉換為one-hot編碼,而是根據target的值,索引到對應元素,然后取相反數。loss = F.nll_loss(logsoftmax, target, reduction=reduction)return lossprint('F.nll_loss實現的CrossEntropyLoss: ', cross_loss2(predict, target, reduction='none'))

官方實現CrossEntropyLoss: ? ? ? ? ?tensor([0.8761, 1.2729, 0.7434])
實現方便理解的CrossEntropyLoss: ? ? tensor([0.8761, 1.2729, 0.7434])

target = ?tensor([0, 1, 2])
logsoftmax:
tensor([[-0.8761, -1.5761, -0.9761],
? ? ? ? [-0.9729, -1.2729, -1.0729],
? ? ? ? [-1.2434, -1.4434, -0.7434]])
F.nll_loss實現的CrossEntropyLoss: ?tensor([0.8761, 1.2729, 0.7434])
?

?

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

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

相關文章

一次制作參考網雜志的閱讀書源的實操經驗總結(附書源)

文章目錄 一、背景介紹二、書源文件三、詳解制作書源&#xff08;一&#xff09;打開Web服務&#xff08;二&#xff09;參考網結構解釋&#xff08;三&#xff09;閱讀書源 基礎&#xff08;四&#xff09;閱讀書源 發現&#xff08;五&#xff09;閱讀書源 詳細&#xff08;六…

并發設計模式實戰系列(2):領導者/追隨者模式

&#x1f31f; ?大家好&#xff0c;我是摘星&#xff01;? &#x1f31f; 今天為大家帶來的是并發設計模式實戰系列&#xff0c;第二章領導者/追隨者&#xff08;Leader/Followers&#xff09;模式&#xff0c;廢話不多說直接開始~ 目錄 領導者/追隨者&#xff08;Leader/…

自求導實現線性回歸與PyTorch張量詳解

目錄 前言一、自求導的方法實現線性回歸1.1自求導的方法實現線性回歸的理論講解1.1.1 線性回歸是什么&#xff1f;1.1.2線性回歸方程是什么&#xff1f;1.1.3散點輸入1.2參數初始化1.2.1 參數與超參數1.2.1.1 參數定義1.2.1.2 參數內容1.2.1.3 超參數定義1.2.1.4 超參數內容1.…

2025年機電一體化、機器人與人工智能國際學術會議(MRAI 2025)

重要信息 時間&#xff1a;2025年4月25日-27日 地點&#xff1a;中國濟南 官網&#xff1a;http://www.icmrai.org 征稿主題 機電一體化機器人人工智能 傳感器和執行器 3D打印技術 智能控制 運動控制 光電系統 光機電一體化 類人機器人 人機界面 先進的運動控制 集成制造系…

線性代數 | 知識點整理 Ref 3

注&#xff1a;本文為 “線性代數 | 知識點整理” 相關文章合輯。 因 csdn 篇幅合并超限分篇連載&#xff0c;本篇為 Ref 3。 略作重排&#xff0c;未整理去重。 圖片清晰度限于引文原狀。 如有內容異常&#xff0c;請看原文。 《線性代數》總復習要點、公式、重要結論與重點釋…

CFD中的動量方程非守恒形式詳解

在計算流體力學&#xff08;CFD&#xff09;中&#xff0c;動量方程可以寫成守恒形式和非守恒形式&#xff0c;兩者在數學上等價&#xff0c;但推導方式和應用場景不同。以下是對非守恒形式的詳細解釋&#xff1a; 1. 動量方程的守恒形式 首先回顧守恒形式的動量方程&#xff…

Leetcode 1504. 統計全 1 子矩形

1.題目基本信息 1.1.題目描述 給你一個 m x n 的二進制矩陣 mat &#xff0c;請你返回有多少個 子矩形 的元素全部都是 1 。 1.2.題目地址 https://leetcode.cn/problems/count-submatrices-with-all-ones/description/ 2.解題方法 2.1.解題思路 單調棧 時間復雜度&…

【Docker】運行錯誤提示 unknown shorthand flag: ‘d‘ in -d ----詳細解決方法

使用docker拉取Dify的時候遇到錯誤 錯誤提示 unknown shorthand flag: d in -dUsage: docker [OPTIONS] COMMAND [ARG...]錯誤原因解析 出現 unknown shorthand flag: d in -d 的根本原因是 Docker 命令格式與當前版本不兼容&#xff0c;具體分為以下兩種情況&#xff1a; 新…

華為OD機試真題——攀登者2(2025A卷:200分)Java/python/JavaScript/C++/C語言/GO六種最佳實現

2025 A卷 200分 題型 本文涵蓋詳細的問題分析、解題思路、代碼實現、代碼詳解、測試用例以及綜合分析&#xff1b; 并提供Java、python、JavaScript、C、C語言、GO六種語言的最佳實現方式&#xff01; 2025華為OD真題目錄全流程解析/備考攻略/經驗分享 華為OD機試真題《攀登者2…

qt硬件與軟件通信中 16進制與十進制轉化

1. 首先上代碼, 這是在qt語言上的操作 截取 01 03 0C 00 00 00 00 00 00 00 0C 00 0C 00 0C 93 70 這串16進制數值進行處理&#xff0c;截取這樣一段內容 00 0C 00 0C 00 0C 字節數組轉字符串。從bytearray數組轉換為string. QString CustomTcpSocket::recieveInfo() {QByteArr…

圖形變換算法

一、學習目的 &#xff08;1&#xff09;掌握多面體的存儲方法。 &#xff08;2&#xff09;掌握圖形的幾何變換及投影變換。 &#xff08;3&#xff09;掌握三維形體不同投影方法的投影圖的生成原理。 &#xff08;4&#xff09;掌握多面體投影圖繪制的編程方法。 二、學…

【JAVAFX】自定義FXML 文件存放的位置以及使用

情況 1&#xff1a;FXML 文件與調用類在同一個包中&#xff08;推薦&#xff09; 假設類 MainApp 的包是 com.example&#xff0c;且 FXML 文件放在 resources/com/example 下&#xff1a; 項目根目錄 ├── src │ └── sample │ └── Main.java ├── src/s…

Ubuntu20.04安裝企業微信

建議先去企業微信官網看一下有沒有linux版本&#xff0c;沒有的話在按如下方式安裝&#xff0c;不過現在是沒有的。 方案 1、使用docker容器 2、使用deepin-wine 3、使用星火應用商店 4. 使用星火包deepin-wine 5、使用ukylin-wine 本人對docker不太熟悉&#xff0c;現…

CSS appearance 屬性:掌握UI元素的原生外觀

在現代網頁設計中&#xff0c;為了達到一致的用戶體驗&#xff0c;我們有時需要讓HTML元素模仿操作系統的默認控件樣式。CSS中的appearance屬性提供了一種簡便的方式來控制這些元素是否以及如何顯示其默認外觀。本文將詳細介紹appearance屬性&#xff0c;并通過實際代碼示例來展…

十四、C++速通秘籍—函數式編程

目錄 上一章節&#xff1a; 一、引言 一、函數式編程基礎 三、Lambda 表達式 作用&#xff1a; Lambda 表達式捕獲值的方式&#xff1a; 注意&#xff1a; 四、函數對象 函數對象與普通函數對比&#xff1a; 五、函數適配器 1、適配普通函數 2、適配 Lambda 表達式 …

大模型Rag-指令調度

本文主要記錄根據用戶問題指令&#xff0c;基于大模型做Rag&#xff0c;匹配最相關描述集進行指令調度&#xff0c;可用于匹配后端接口以及展示答案及圖表等。 1.指令查詢處理邏輯 1.實現思路 指令識別&#xff1a;主要根據用戶的問題q計算與指令描述集is [i0, ... , im]和指…

音視頻學習 - ffmpeg 編譯與調試

編譯 環境 macOS Ventrua 13.4 ffmpeg 7.7.1 Visual Studio Code Version: 1.99.0 (Universal) 操作 FFmpeg 下載源碼 $ cd ffmpeg-x.y.z $ ./configure nasm/yasm not found or too old. Use --disable-x86asm for a crippled build.If you think configure made a mistake…

golang-常見的語法錯誤

https://juejin.cn/post/6923477800041054221 看這篇文章 Golang 基礎面試高頻題詳細解析【第一版】來啦&#xff5e; 大叔說碼 for-range的坑 func main() { slice : []int{0, 1, 2, 3} m : make(map[int]*int) for key, val : range slice {m[key] &val }for k, v : …

音視頻之H.265/HEVC預測編碼

H.265/HEVC系列文章&#xff1a; 1、音視頻之H.265/HEVC編碼框架及編碼視頻格式 2、音視頻之H.265碼流分析及解析 3、音視頻之H.265/HEVC預測編碼 預測編碼是視頻編碼中的核心技術之一。對于視頻信號來說&#xff0c;一幅圖像內鄰近像素之間有著較強的空間相關性,相鄰圖像之…

基于政務問答的dify接口請求測試

Dify 的智能體后端服務 API 為開發者提供便捷方式&#xff0c;能讓前端應用直接調用大語言模型能力。在請求時&#xff0c;需先前往應用左側導航的 “API Access” 部分&#xff0c;在此可查看文檔和管理訪問憑據。為保障安全&#xff0c;API 密鑰應通過后端調用&#xff0c;避…