語音增強的損失函數選擇

一、最優尺度不變信噪比(OSISNR)損失函數

??參考:論文解讀 --Optimal scale-invariant signal-to-noise ratio and curriculum learning for monaural multi-spea
??最優尺度不變信噪比(OSI-SNR)是一種用于評估信號質量的指標,特別是在語音分離和增強任務中。OSI-SNR 通過優化估計信號與目標信號之間的相似性,提供了一種更穩定和可靠的信號質量度量。OSI-SNR 的計算步驟如下: s s s表示原始語音信號, s ^ \hat{s} s^表示重建的語音信號。
? s , s ^ ? = ∑ t = 1 T s [ t ] ? s ^ [ t ] \langle s, \hat{s} \rangle = \sum_{t=1}^{T} s[t] \cdot \hat{s}[t] ?s,s^?=t=1T?s[t]?s^[t]
∣ s ^ ∣ 2 = ∑ t = 1 T ∣ s ^ [ t ] ∣ 2 |s^{\hat{}}|^2 = \sum_{t=1}^{T} |\hat{s}[t]|^2 s^2=t=1T?s^[t]2
λ = ∣ s ^ ∣ 2 ? s , s ^ ? \lambda = \frac{|s^{\hat{}}|^2}{\langle s, \hat{s} \rangle} λ=?s,s^?s^2?
s target = λ ? s ^ s_{\text{target}} = \lambda \cdot \hat{s} starget?=λ?s^
e noise = s ^ ? s target e_{\text{noise}} = \hat{s} - s_{\text{target}} enoise?=s^?starget?
OSI-SNR = 10 log ? 10 ( ∥ s target ∥ 2 ∥ e noise ∥ 2 ) \text{OSI-SNR} = 10 \log_{10} \left( \frac{\| s_{\text{target}} \|^2}{\| e_{\text{noise}} \|^2} \right) OSI-SNR=10log10?(enoise?2starget?2?)
??將 最優尺度不變信噪比(OSI-SNR) 的倒數作為損失函數是一個合理的想法,尤其是在某些情況下,可能會更好地反映模型的性能。OSI-SNR 是一個衡量信號質量的指標,值越高表示信號質量越好。在訓練過程中,我們通常希望最小化損失函數,因此可以考慮將 OSI-SNR 的倒數作為損失函數。參考:基于深層聲學特征的端到端語音分離

方法 1:每一幀的 OSI-SNR 取倒數計算損失,再取均值

  1. 計算每一幀的 OSI-SNR
    OSI-SNR i = 10 log ? 10 ( ∥ s target , i ∥ 2 ∥ e noise , i ∥ 2 ) \text{OSI-SNR}_i = 10 \log_{10} \left( \frac{\| s_{\text{target}, i} \|^2}{\| e_{\text{noise}, i} \|^2} \right) OSI-SNRi?=10log10?(enoise,i?2starget,i?2?)
  2. 計算損失
    Loss i = 1 OSI-SNR i + ? = 1 10 log ? 10 ( ∥ s target , i ∥ 2 ∥ e noise , i ∥ 2 ) + ? \text{Loss}_i = \frac{1}{\text{OSI-SNR}_i + \epsilon} = \frac{1}{10 \log_{10} \left( \frac{\| s_{\text{target}, i} \|^2}{\| e_{\text{noise}, i} \|^2} \right) + \epsilon} Lossi?=OSI-SNRi?+?1?=10log10?(enoise,i?2starget,i?2?)+?1?
  3. 取均值
    Final?Loss = 1 N ∑ i = 1 N Loss i = 1 N ∑ i = 1 N 1 10 log ? 10 ( ∥ s target , i ∥ 2 ∥ e noise , i ∥ 2 ) + ? \text{Final Loss} = \frac{1}{N} \sum_{i=1}^{N} \text{Loss}_i = \frac{1}{N} \sum_{i=1}^{N} \frac{1}{10 \log_{10} \left( \frac{\| s_{\text{target}, i} \|^2}{\| e_{\text{noise}, i} \|^2} \right) + \epsilon} Final?Loss=N1?i=1N?Lossi?=N1?i=1N?10log10?(enoise,i?2starget,i?2?)+?1?

方法 2:每一幀的 OSI-SNR 取均值,再取倒數計算損失

  1. 計算每一幀的 OSI-SNR
    OSI-SNR i = 10 log ? 10 ( ∥ s target , i ∥ 2 ∥ e noise , i ∥ 2 ) \text{OSI-SNR}_i = 10 \log_{10} \left( \frac{\| s_{\text{target}, i} \|^2}{\| e_{\text{noise}, i} \|^2} \right) OSI-SNRi?=10log10?(enoise,i?2starget,i?2?)
  2. 取均值
    Mean?OSI-SNR = 1 N ∑ i = 1 N OSI-SNR i = 1 N ∑ i = 1 N 10 log ? 10 ( ∥ s target , i ∥ 2 ∥ e noise , i ∥ 2 ) \text{Mean OSI-SNR} = \frac{1}{N} \sum_{i=1}^{N} \text{OSI-SNR}_i = \frac{1}{N} \sum_{i=1}^{N} 10 \log_{10} \left( \frac{\| s_{\text{target}, i} \|^2}{\| e_{\text{noise}, i} \|^2} \right) Mean?OSI-SNR=N1?i=1N?OSI-SNRi?=N1?i=1N?10log10?(enoise,i?2starget,i?2?)
  3. 計算損失
    Final?Loss = 1 Mean?OSI-SNR + ? = 1 1 N ∑ i = 1 N 10 log ? 10 ( ∥ s target , i ∥ 2 ∥ e noise , i ∥ 2 ) + ? \text{Final Loss} = \frac{1}{\text{Mean OSI-SNR} + \epsilon} = \frac{1}{\frac{1}{N} \sum_{i=1}^{N} 10 \log_{10} \left( \frac{\| s_{\text{target}, i} \|^2}{\| e_{\text{noise}, i} \|^2} \right) + \epsilon} Final?Loss=Mean?OSI-SNR+?1?=N1?i=1N?10log10?(enoise,i?2starget,i?2?)+?1?
  • 方法 1 的最終損失函數是對每一幀的 OSI-SNR 值取倒數后再取均值,強調了每一幀的信號質量。
  • 方法 2 的最終損失函數是先計算所有幀的 OSI-SNR 的均值,然后取倒數,提供了一個整體的信號質量評估。
import numpy as np
def calculate_osi_snr_frame(target, estimated):# 獲取幀數和頻點數num_bins, num_frames = target.shapeosi_snr_frames = np.zeros(num_frames)for frame in range(num_frames):dot_product = np.sum(target[:, frame] * estimated[:, frame])estimated_energy = np.sum(np.abs(estimated[:, frame]) ** 2)lambda_opt = estimated_energy / (dot_product + 1e-10)  # 防止除以零target_adjusted = lambda_opt * target[:, frame]noise = estimated[:, frame] - target_adjustedtarget_energy = np.sum(np.abs(target_adjusted) ** 2)noise_energy = np.sum(np.abs(noise) ** 2)osi_snr_frames[frame] = 10 * np.log10(target_energy / (noise_energy + 1e-8))return osi_snr_frames
def loss_method_1(osi_snr_frames, epsilon=1e-8):# 每一幀的 OSI-SNR 取倒數計算損失,再取均值losses = 1 / (osi_snr_frames + epsilon)final_loss = np.mean(losses)return final_loss
def loss_method_2(osi_snr_frames, epsilon=1e-8):# 每一幀的 OSI-SNR 取均值,再取倒數計算損失mean_osi_snr = np.mean(osi_snr_frames)final_loss = 1 / (mean_osi_snr + epsilon)return final_loss
# 示例掩蔽矩陣 M1 和 M2
M1 = np.array([[0.5, 0.6, 0.7],[0.8, 0.9, 1.0],[1.1, 1.2, 1.3]])M2 = np.array([[0.4, 0.5, 0.6],[0.7, 0.8, 0.9],[1.0, 1.1, 1.2]])
# 計算每一幀的 OSI-SNR
osi_snr_frames = calculate_osi_snr_frame(M1, M2)
# 計算損失
loss1 = loss_method_1(osi_snr_frames)
loss2 = loss_method_2(osi_snr_frames)
print(f"Loss Method 1 (Frame-wise OSI-SNR): {loss1:.4f}")
print(f"Loss Method 2 (Mean OSI-SNR): {loss2:.4f}")
Loss Method 1 (Frame-wise OSI-SNR): 0.03342
Loss Method 2 (Mean OSI-SNR): 0.03333

二、幅度冪律壓縮均方誤差(MC-MSE)損失函數

??在音頻信號處理和深度學習領域,幅度冪律壓縮均方誤差(Magnitude Compression Mean Squared Error, MC-MSE)是一種重要的損失函數,特別適用于語音增強和音頻分離任務。MC-MSE通過引入幅度壓縮的概念,能夠更有效地處理具有大動態范圍的音頻信號,從而提高模型的性能。

2.1 、原理

??在傳統的均方誤差(MSE)損失函數中,模型對大幅度信號的敏感性可能導致對小幅度信號的學習不足。這種情況在音頻信號處理中尤為明顯,因為音頻信號的幅度通常具有很大的動態范圍。為了解決這個問題,MC-MSE引入了幅度壓縮的機制,通過對信號幅度進行非線性變換,使得模型在訓練過程中能夠更好地關注小幅度信號的特征。

MC-MSE的核心思想是通過冪律壓縮函數對信號幅度進行處理,從而使得損失函數在計算時能夠更均衡地反映不同幅度信號的影響。具體來說,MC-MSE通過對目標信號和預測信號的幅度進行壓縮,來計算它們之間的均方誤差。

2.2、公式

MC-MSE Loss的計算公式可以表示為:
L MC-MSE = 1 N ∑ i = 1 N ( compress ( y i ) ? compress ( y ^ i ) ) 2 L_{\text{MC-MSE}}= \frac{1}{N} \sum_{i=1}^{N} \left( \text{compress}(y_i) - \text{compress}(\hat{y}_i) \right)^2 LMC-MSE?=N1?i=1N?(compress(yi?)?compress(y^?i?))2

其中:

  • y i y_i yi? 是目標信號的幅度。
  • y ^ i \hat{y}_i y^?i? 是模型預測的幅度。
  • compress ( ? ) \text{compress}(\cdot) compress(?) 是幅度壓縮函數,通常采用冪律壓縮形式。
    幅度壓縮函數的形式為:
    compress ( x ) = sign ( x ) ? ∣ x ∣ α \text{compress}(x) = \text{sign}(x) \cdot |x|^\alpha compress(x)=sign(x)?xα

??在這里, α \alpha α是壓縮因子,通常取值在 0 < α < 1 0 < \alpha < 1 0<α<1 之間。較小的 α \alpha α值會導致更強的壓縮效果,從而使得模型在訓練時能夠更好地學習小幅度信號的特征。通過這種方式,MC-MSE損失函數能夠有效地提高模型在音頻處理任務中的性能,尤其是在復雜的噪聲環境中。它不僅改善了模型對小幅度信號的學習能力,還增強了模型的魯棒性,使其在實際應用中表現得更加出色。
??通過一個具體的例子來說明如何計算兩個掩蔽之間的幅度冪律壓縮均方誤差(MC-MSE)。假設我們有兩個掩蔽 M 1 M_1 M1? M 2 M_2 M2?,它們的維度都是 3 × 3 3 \times 3 3×3(即3個時間幀和3個頻率bin),并且我們選擇壓縮指數 p = 0.3 p = 0.3 p=0.3
??首先,我們對兩個掩蔽應用冪律壓縮。假設 M 1 M_1 M1? M 2 M_2 M2?的值如下:
M 1 = [ 0.5 0.6 0.7 0.8 0.9 1.0 1.1 1.2 1.3 ] M_1 = \begin{bmatrix} 0.5 & 0.6 & 0.7 \\ 0.8 & 0.9 & 1.0 \\ 1.1 & 1.2 & 1.3 \end{bmatrix} M1?= ?0.50.81.1?0.60.91.2?0.71.01.3? ?
M 2 = [ 0.4 0.5 0.6 0.7 0.8 0.9 1.0 1.1 1.2 ] M_2 = \begin{bmatrix} 0.4 & 0.5 & 0.6 \\ 0.7 & 0.8 & 0.9 \\ 1.0 & 1.1 & 1.2 \end{bmatrix} M2?= ?0.40.71.0?0.50.81.1?0.60.91.2? ?

應用冪律壓縮 p = 0.3 p = 0.3 p=0.3后,我們得到:
M 1 p = [ 0. 5 0.3 0. 6 0.3 0. 7 0.3 0. 8 0.3 0. 9 0.3 1. 0 0.3 1. 1 0.3 1. 2 0.3 1. 3 0.3 ] M_1^p = \begin{bmatrix} 0.5^{0.3} & 0.6^{0.3} & 0.7^{0.3} \\ 0.8^{0.3} & 0.9^{0.3} & 1.0^{0.3} \\ 1.1^{0.3} & 1.2^{0.3} & 1.3^{0.3} \end{bmatrix} M1p?= ?0.50.30.80.31.10.3?0.60.30.90.31.20.3?0.70.31.00.31.30.3? ?
M 2 p = [ 0. 4 0.3 0. 5 0.3 0. 6 0.3 0. 7 0.3 0. 8 0.3 0. 9 0.3 1. 0 0.3 1. 1 0.3 1. 2 0.3 ] M_2^p = \begin{bmatrix} 0.4^{0.3} & 0.5^{0.3} & 0.6^{0.3} \\ 0.7^{0.3} & 0.8^{0.3} & 0.9^{0.3} \\ 1.0^{0.3} & 1.1^{0.3} & 1.2^{0.3} \end{bmatrix} M2p?= ?0.40.30.70.31.00.3?0.50.30.80.31.10.3?0.60.30.90.31.20.3? ?
??接下來,我們計算兩個壓縮后的掩蔽之間的均方誤差。具體地,對于每個元素,我們計算差的平方,然后對所有元素求平均。
L MC-MSE = 1 9 ( ( 0. 5 0.3 ? 0. 4 0.3 ) 2 + ( 0. 6 0.3 ? 0. 5 0.3 ) 2 + … + ( 1. 3 0.3 ? 1. 2 0.3 ) 2 ) = 0.00135 L_{\text{MC-MSE}} = \frac{1}{9} \left( (0.5^{0.3} - 0.4^{0.3})^2 \\+ (0.6^{0.3} - 0.5^{0.3})^2 \\+ \ldots + (1.3^{0.3} - 1.2^{0.3})^2 \right) = 0.00135 LMC-MSE?=91?((0.50.3?0.40.3)2+(0.60.3?0.50.3)2++(1.30.3?1.20.3)2)=0.00135

import numpy as npdef calculate_mc_mse(M1, M2, p=0.3):compressed_M1 = M1 ** pcompressed_M2 = M2 ** pmse = np.mean((compressed_M1 - compressed_M2) ** 2)return mseM1 = np.array([[0.5, 0.6, 0.7], [0.8, 0.9, 1.0], [1.1, 1.2, 1.3]])
M2 = np.array([[0.4, 0.5, 0.6], [0.7, 0.8, 0.9], [1.0, 1.1, 1.2]])mc_mse = calculate_mc_mse(M1, M2, p=0.3)
print("MC-MSE:", mc_mse)
MC-MSE: 0.00135

三、融合損失函數

參考:AEC論文解讀 – A Deep Hierarchical Fusion Network for Fullband Acoustic Echo Cancellation
??結合 最優尺度不變信噪比(OSI-SNR)幅度冪律壓縮均方誤差(MC-MSE) 的損失函數,可以通過超參數 γ \gamma γ 加權來形成最終的損失函數。根據您提供的公式,最終的損失計算公式可以表示為:
L = L OSI-SNR + γ L MC-MSE L = L_{\text{OSI-SNR}} + \gamma L_{\text{MC-MSE}} L=LOSI-SNR?+γLMC-MSE?

  1. OSI-SNR 損失【方法 1】
    L OSI-SNR = 1 N ∑ i = 1 N Loss i = 1 N ∑ i = 1 N 1 10 log ? 10 ( ∥ s target , i ∥ 2 ∥ e noise , i ∥ 2 ) + ? L_{\text{OSI-SNR}}= \frac{1}{N} \sum_{i=1}^{N} \text{Loss}_i = \frac{1}{N} \sum_{i=1}^{N} \frac{1}{10 \log_{10} \left( \frac{\| s_{\text{target}, i} \|^2}{\| e_{\text{noise}, i} \|^2} \right) + \epsilon} LOSI-SNR?=N1?i=1N?Lossi?=N1?i=1N?10log10?(enoise,i?2starget,i?2?)+?1?

  2. MC-MSE 損失
    L MC-MSE = 1 N ∑ i = 1 N ( compress ( y i ) ? compress ( y ^ i ) ) 2 L_{\text{MC-MSE}}= \frac{1}{N} \sum_{i=1}^{N} \left( \text{compress}(y_i) - \text{compress}(\hat{y}_i) \right)^2 LMC-MSE?=N1?i=1N?(compress(yi?)?compress(y^?i?))2

  3. 最終損失公式
    L = L OSI-SNR + γ ? L MC-MSE = 1 N ∑ i = 1 N Loss i = 1 N ∑ i = 1 N 1 10 log ? 10 ( ∥ s target , i ∥ 2 ∥ e noise , i ∥ 2 ) + ? + γ ? 1 N ∑ i = 1 N ( compress ( y i ) ? compress ( y ^ i ) ) 2 L = L_{\text{OSI-SNR}} + \gamma \cdot L_{\text{MC-MSE}}= \frac{1}{N} \sum_{i=1}^{N} \text{Loss}_i \\= \frac{1}{N} \sum_{i=1}^{N} \frac{1}{10 \log_{10} \left( \frac{\| s_{\text{target}, i} \|^2}{\| e_{\text{noise}, i} \|^2} \right) + \epsilon} +\gamma \cdot\frac{1}{N} \sum_{i=1}^{N} \left( \text{compress}(y_i) - \text{compress}(\hat{y}_i) \right)^2 L=LOSI-SNR?+γ?LMC-MSE?=N1?i=1N?Lossi?=N1?i=1N?10log10?(enoise,i?2starget,i?2?)+?1?+γ?N1?i=1N?(compress(yi?)?compress(y^?i?))2

  • γ \gamma γ:需要調試的經驗值。
  • ? \epsilon ?:一個小常數,用于防止除以零的情況。
  • 這個損失函數通過加權結合了 OSI-SNR 和 MC-MSE,能夠同時考慮信號的重建質量和相似性。
  • 通過調整 γ \gamma γ 的值,可以控制兩種損失在最終損失中的相對重要性,從而優化模型的性能。
import numpy as np
def calculate_osi_snr_frame(target, estimated):num_bins, num_frames = target.shapeosi_snr_frames = np.zeros(num_frames)for frame in range(num_frames):dot_product = np.sum(target[:, frame] * estimated[:, frame])estimated_energy = np.sum(np.abs(estimated[:, frame]) ** 2)lambda_opt = estimated_energy / (dot_product + 1e-10)  # 防止除以零target_adjusted = lambda_opt * target[:, frame]noise = estimated[:, frame] - target_adjustedtarget_energy = np.sum(np.abs(target_adjusted) ** 2)noise_energy = np.sum(np.abs(noise) ** 2)osi_snr_frames[frame] = 10 * np.log10(target_energy / (noise_energy + 1e-8))return osi_snr_frames
def mc_mse_loss(target, estimated, gamma=0.3):compressed_target = np.power(np.abs(target), gamma)compressed_estimated = np.power(np.abs(estimated), gamma)loss = np.mean((compressed_estimated - compressed_target) ** 2)return loss
def combined_loss(target, estimated, gamma=15):# 計算每一幀的 OSI-SNRosi_snr_frames = calculate_osi_snr_frame(target, estimated)# 計算 OSI-SNR 損失osi_snr_loss = np.mean(1 / (osi_snr_frames + 1e-10))print('osi_snr_loss:', osi_snr_loss)# 計算 MC-MSE 損失mc_mse_value = mc_mse_loss(target, estimated)print('mc_mse_value:', mc_mse_value)# 計算最終損失final_loss = osi_snr_loss + gamma * mc_mse_valuereturn final_loss
# 示例掩蔽矩陣 M1 和 M2
M1 = np.array([[0.5, 0.6, 0.7],[0.8, 0.9, 1.0],[1.1, 1.2, 1.3]])M2 = np.array([[0.4, 0.5, 0.6],[0.7, 0.8, 0.9],[1.0, 1.1, 1.2]])
# 計算最終損失
loss_value = combined_loss(M1, M2, gamma=15)
print(f'Final Loss: {loss_value:.5f}')
osi_snr_loss: 0.033421230071106235
mc_mse_value: 0.0013543901266690674
Final Loss: 0.05374

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

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

相關文章

【置信區間】之Python實現

置信區間是統計學中的一個核心概念,用于估計總體參數(如均值、比例等)的取值范圍。以下是對置信區間的詳細解釋: 一、定義與基本概念 定義:置信區間是指由樣本統計量所構造的總體參數的估計區間。它給出了參數真實值有一定概率落在該區間內的范圍,反映了測量值的可信程度…

大恒相機開發(3)—大恒相機工業檢測的實際案例

大恒相機工業檢測的實際案例 工業檢測的實際案例圖像采集性能優化技巧工業環境下的穩定性 工業檢測的實際案例 以下是一些使用大恒相機進行工業檢測的實際案例&#xff1a; 多特征光學成像系統&#xff1a; 在這個案例中&#xff0c;使用大恒相機構建了一個全方位、多特征的圖…

Java基礎面試題20:Java語言sendRedirect()和forward()方法有什么區別?

Java基礎面試題&#xff1a;Java語言sendRedirect()和forward()方法有什么區別&#xff1f; 在 Java Web 開發中&#xff0c;sendRedirect() 和 forward() 是兩個非常常用的方法&#xff0c;但它們有一些核心區別。我們來用最簡單的方式給你解釋清楚。 一、sendRedirect() 和 …

go官方日志庫帶色彩格式化

go默認的 log 輸出的日志樣式比較難看&#xff0c;所以通過以下方式進行了美化和格式化&#xff0c;而且加入了 unicode 的ascii碼&#xff0c;進行色彩渲染。 package mainimport ("fmt""log""os""runtime""strings""…

Linux shell腳本用于常見圖片png、jpg、jpeg、webp、tiff格式批量轉PDF文件

Linux Debian12基于ImageMagick圖像處理工具編寫shell腳本用于常見圖片png、jpg、jpeg、webp、tiff格式批量轉PDF文件&#xff0c;”多個圖片分開生成多個PDF文件“或者“多個圖片合并生成一個PDF文件” 在Linux系統中&#xff0c;使用ImageMagick可以圖片格式轉換&#xff0c…

【C++語言】多態

一、多態的概念 多態的概念&#xff1a;通俗來說&#xff0c;就是多種形態&#xff0c;具體點就是去完成某種行為&#xff0c;當不同的對象去完成時會產生出不同的狀態。 我們可以舉一個例子&#xff1a; 比如買票這種行為&#xff0c;當普通人買票時&#xff0c;是全價買票&am…

Centos7配置webrtc-streamer環境

Centos7配置webrtc-streamer環境 安裝webrtc-streamer0.7版本 升級gdb 1、yum安裝2、查看gdb版本3.下載待升級的gdb版本4.QA 1、預編譯的時候報錯no acceptable C compiler found in $PATH2、make的時候報錯[all-bfd] Error3、make的時候報錯 升級GCC 1.源碼編譯升級gcc9.3.0…

Vue.js 響應接口

Vue.js 響應接口 引言 Vue.js,作為當前前端開發領域中的佼佼者,以其簡潔、高效和靈活的特點,贏得了廣大開發者的喜愛。其核心功能之一便是響應式系統,它使得數據與視圖之間的同步變得異常簡單。本文將深入探討Vue.js的響應接口,解析其工作原理,并展示如何在實際項目中有…

深入了解藍牙Profile類型與設備的對應關系

在現代技術中,藍牙作為一種無線通信技術,廣泛應用于各種設備之間的短距離通信。不同的設備在連接時使用不同的藍牙Profile(配置文件),每種Profile都為特定的設備功能提供支持,例如音頻流傳輸、語音通話、文件傳輸等。在本文中,我們將詳細介紹藍牙Profile的常見類型及其對…

LLMs之PDF:MinerU(將PDF文件轉換成Markdown和JSON格式)的簡介、安裝和使用方法、案例應用之詳細攻略

LLMs之PDF&#xff1a;MinerU(將PDF文件轉換成Markdown和JSON格式)的簡介、安裝和使用方法、案例應用之詳細攻略 目錄 MinerU的簡介 0、日志 1、MinerU 的主要特點 2、已知問題 MinerU 安裝和使用方法 1、MinerU的三種體驗方式 T1、在線演示 T2、快速CPU演示 T3、GPU …

【AIGC】ChatGPT 結構化 Prompt 的高級應用

博客主頁&#xff1a; [小????????] 本文專欄: AIGC | ChatGPT 文章目錄 &#x1f4af;前言&#x1f4af;標識符的使用&#xff08;Use of Identifiers&#xff09;1. #2. <>3. - 或 4. [] &#x1f4af;屬性詞的重要性和應用應用場景 &#x1f4af;具體模塊…

Python繪制圖表

Python提供了多種可視化庫&#xff0c;常用的有matplotlib、seaborn和plotly等。這些庫可以用于繪制各種類型的圖表&#xff0c;如折線圖、散點圖、柱狀圖、餅圖等。 下面是一個使用matplotlib繪制折線圖的示例&#xff1a; python import matplotlib.pyplot as plt # 準備數…

Python 練習

一、列表練習 1、求偶數元素的和[1,2,1,2,3,3,6,5,8] 1 2 3 4 5 6 list01 [1, 2, 1, 2, 3, 3, 6, 5, 8] sum 0 for i in list01: if int(i) % 2 0: sum sum i print(f"列表中所有偶數和是: {sum}") 2、計算 1 - 2 3 - 4 ... 99 中除88以外…

OpenEuler 22.03 安裝 flink-1.17.2 集群

零&#xff1a;規劃 本次計劃安裝三臺OpenEuler 22.03 版本操作系統的服務器&#xff0c;用于搭建 flink 集群。這里使用flink1.17.2 的原因&#xff0c;是便于后續與springboot的整合 服務器名IP地址作用其他應用flink01192.168.159.133主jdk11、flink-1.17.2flink02192.168.…

Docker 安裝 禪道-21.2版本-外部數據庫模式

Docker 安裝系列 1、拉取最新版本&#xff08;zentao 21.2&#xff09; [rootTseng ~]# docker pull hub.zentao.net/app/zentao Using default tag: latest latest: Pulling from app/zentao 55ab1b300d4b: Pull complete 6b5749e5ef1d: Pull complete bdccb03403c1: Pul…

寬帶ANC、窄帶ANC、正弦噪聲抑制組成混合噪聲控制系統結構

混合控制結構由寬帶ANC子系統&#xff08;BANC&#xff09;、窄帶ANC子系統&#xff08;NANC&#xff09;和正弦噪聲抑制子系統&#xff08;SNC&#xff09;三部分組成。這種混合系統的設計目標是有效地控制同時包含寬帶噪聲和窄帶噪聲&#xff08;例如周期性的正弦噪聲&#x…

車載網關性能 --- GW ECU報文(message)處理機制的技術解析

我是穿拖鞋的漢子,魔都中堅持長期主義的汽車電子工程師。 老規矩,分享一段喜歡的文字,避免自己成為高知識低文化的工程師: 所謂雞湯,要么蠱惑你認命,要么慫恿你拼命,但都是回避問題的根源,以現象替代邏輯,以情緒代替思考,把消極接受現實的懦弱,偽裝成樂觀面對不幸的…

【潛意識Java】深度解析黑馬項目《蒼穹外賣》與藍橋杯算法的結合問題

目錄 為什么要結合項目與算法&#xff1f; 1. 藍橋杯與《蒼穹外賣》項目的結合 實例&#xff1a;基于藍橋杯算法思想的訂單配送路徑規劃 問題描述&#xff1a; 代碼實現&#xff1a;使用動態規劃解決旅行商問題 代碼解析&#xff1a; 為什么這個題目與藍橋杯相關&#x…

自己搭建專屬AI:Llama大模型私有化部署

前言 AI新時代&#xff0c;提高了生產力且能幫助用戶快速解答問題&#xff0c;現在用的比較多的是Openai、Claude&#xff0c;為了保證個人隱私數據&#xff0c;所以嘗試本地&#xff08;Mac M3&#xff09;搭建Llama模型進行溝通。 Gpt4all 安裝比較簡單&#xff0c;根據 G…

大語言模型中的Agent優勢及相關技術;Agent和RAG區別

大語言模型中的Agent優勢及相關技術: 強大的任務規劃與執行能力 技術:通過將復雜任務拆解為多個子任務,并依據任務間的邏輯關系和優先級進行規劃,確定執行順序,調用相應工具或模型來完成各子任務,最終實現復雜任務的整體解決。如微軟的Jarvis,可利用LLM的推理規劃能力拆…