嵌入原則:數據特征如何 融入 模型的 損失地形

嵌入原則:數據特征如何 融入 模型的 損失地形

第一節:嵌入原則的基本概念與公式解釋

機器學習中的嵌入原則,就像 “雕刻師”“石塊的紋理” 逐漸融入到 “雕塑的造型” 中。數據特征不再是獨立的輸入,而是被模型 “吸收”“內化”,最終體現在模型的 “損失地形” 上。

核心內容

【嵌入原則的核心思想是,數據特征不是 “外掛” 在模型上的,而是模型 “自身結構” 的一部分。模型通過學習,將數據特征 “編碼”“低維向量”,這些向量 “鑲嵌” 在模型的參數空間中,共同塑造了模型的 “損失地形”。這個 “損失地形”“坡度”“谷底”,直接決定了模型的 “學習方向”“最終性能”。】

嵌入函數的基本公式

嵌入過程可以用一個嵌入函數 E E E 來表示,它將原始數據特征 x x x 映射到一個低維的嵌入向量 e e e

e = E ( x ; W e ) e = E(x; W_e) e=E(x;We?)

變量解釋

  • e e e:嵌入向量,低維空間中數據特征的表示。
  • E E E:嵌入函數,通常是一個神經網絡層(如線性層、全連接層)。
  • x x x:原始數據特征,模型的輸入。
  • W e W_e We?:嵌入函數的參數,例如嵌入層的權重矩陣。

具體實例與推演【【通俗講解,打比方來講解!】】

以文本情感分類為例,理解嵌入原則的應用。

  • 步驟

    1. 原始文本輸入:例如句子 “這部電影真棒!”
    2. 特征提取:將文本轉換為詞向量,例如使用 Word2Vec 或 GloVe 預訓練的詞向量。假設 “真棒” 這個詞的詞向量為 v awesome v_\text{awesome} vawesome?
    3. 嵌入層:模型包含一個嵌入層 E E E,將詞向量 v awesome v_\text{awesome} vawesome? 作為輸入,通過學習得到一個新的嵌入向量 e awesome = E ( v awesome ; W e ) e_\text{awesome} = E(v_\text{awesome}; W_e) eawesome?=E(vawesome?;We?)
    4. 損失函數:情感分類任務的損失函數(如交叉熵損失)會根據模型的預測情感和真實情感計算損失值。
    5. 梯度下降:梯度下降算法會根據損失值,調整模型參數(包括嵌入層參數 W e W_e We?),使得模型能夠更好地將 “真棒” 這類詞語的嵌入向量與 “積極情感” 關聯起來。
  • 應用公式

    假設嵌入函數 E E E 是一個簡單的線性變換: E ( x ; W e ) = W e x E(x; W_e) = W_e x E(x;We?)=We?x。如果詞向量 v awesome = [ 0.2 , 0.5 , ? 0.1 ] v_\text{awesome} = [0.2, 0.5, -0.1] vawesome?=[0.2,0.5,?0.1],嵌入矩陣 W e W_e We? 在訓練過程中不斷更新,使得 e awesome = W e v awesome e_\text{awesome} = W_e v_\text{awesome} eawesome?=We?vawesome? 能夠更好地幫助模型進行情感分類。

第二節:損失景觀與特征融入

損失函數與損失景觀

損失函數 L ( y ^ , y ) L(\hat{y}, y) L(y^?,y) 度量了模型預測 y ^ \hat{y} y^? 與真實標簽 y y y 之間的差異。損失景觀可以理解為模型參數空間上的一個 “地形圖”,高度表示損失值,“山峰” 代表損失值高,“山谷” 代表損失值低。

L ( θ ) = 1 N ∑ i = 1 N L ( f ( x i ; θ ) , y i ) \mathcal{L}(\theta) = \frac{1}{N} \sum_{i=1}^{N} L(f(x_i; \theta), y_i) L(θ)=N1?i=1N?L(f(xi?;θ),yi?)

變量解釋

  • L ( θ ) \mathcal{L}(\theta) L(θ):損失景觀函數,表示模型參數 θ \theta θ 對應的平均損失值。
  • θ \theta θ:模型參數集合,包括嵌入層參數 W e W_e We? 和其他模型層的參數。
  • N N N:訓練樣本數量。
  • L L L:單個樣本的損失函數。
  • f ( x i ; θ ) f(x_i; \theta) f(xi?;θ):模型函數,輸入 x i x_i xi?,參數為 θ \theta θ,輸出預測值。
  • y i y_i yi?:第 i i i 個樣本的真實標簽。
特征融入損失景觀的過程

嵌入原則的核心在于,數據特征通過嵌入函數 E E E 參與到損失函數的計算中,并最終 “塑造” 了損失景觀。

  1. 特征影響預測:嵌入向量 e = E ( x ; W e ) e = E(x; W_e) e=E(x;We?) 作為模型的輸入,直接影響模型的預測結果 y ^ = f ′ ( e ; θ ′ ) \hat{y} = f'(e; \theta') y^?=f(e;θ),其中 f ′ f' f 是模型主體部分, θ ′ \theta' θ 是模型主體部分的參數。
  2. 預測影響損失:預測結果 y ^ \hat{y} y^? 與真實標簽 y y y 共同決定了損失值 L ( y ^ , y ) L(\hat{y}, y) L(y^?,y)
  3. 損失驅動學習:梯度下降算法根據損失值 L ( θ ) \mathcal{L}(\theta) L(θ) 的梯度,更新模型參數 θ = [ W e , θ ′ ] \theta = [W_e, \theta'] θ=[We?,θ],包括嵌入層參數 W e W_e We?
  4. 特征融入景觀:隨著訓練的進行,嵌入層參數 W e W_e We? 不斷調整,使得嵌入向量 e e e 能夠更好地反映數據特征 x x x,從而 “優化” 損失景觀,使其 “山谷” 更深更廣,“山峰” 更矮更平緩。

第三節:公式探索與推演運算

損失函數的選擇與影響

不同的損失函數會塑造不同的損失景觀,從而影響特征融入的方式和模型的學習效果。常見的損失函數包括:

  1. 均方誤差損失 (MSE):常用于回歸任務。

    L MSE ( y ^ , y ) = 1 2 ( y ^ ? y ) 2 L_\text{MSE}(\hat{y}, y) = \frac{1}{2} (\hat{y} - y)^2 LMSE?(y^?,y)=21?(y^??y)2

    變量解釋

    • L MSE L_\text{MSE} LMSE?:均方誤差損失值。
    • y ^ \hat{y} y^?:模型預測值。
    • y y y:真實標簽值。
  2. 交叉熵損失 (Cross-Entropy):常用于分類任務。

    L CE ( y ^ , y ) = ? ∑ c = 1 C y c log ? ( y ^ c ) L_\text{CE}(\hat{y}, y) = - \sum_{c=1}^{C} y_c \log(\hat{y}_c) LCE?(y^?,y)=?c=1C?yc?log(y^?c?)

    變量解釋

    • L CE L_\text{CE} LCE?:交叉熵損失值。
    • C C C:類別數量。
    • y c y_c yc?:真實標簽的 one-hot 編碼,類別 c c c 為 1,其余為 0。
    • y ^ c \hat{y}_c y^?c?:模型預測的樣本屬于類別 c c c 的概率。
  3. 對比損失 (Contrastive Loss):常用于學習相似性度量和嵌入表示。

    L Contrastive ( e i , e j , l i j ) = l i j d ( e i , e j ) 2 + ( 1 ? l i j ) max ? ( 0 , m ? d ( e i , e j ) ) 2 L_\text{Contrastive}(e_i, e_j, l_{ij}) = l_{ij} d(e_i, e_j)^2 + (1 - l_{ij}) \max(0, m - d(e_i, e_j))^2 LContrastive?(ei?,ej?,lij?)=lij?d(ei?,ej?)2+(1?lij?)max(0,m?d(ei?,ej?))2

    變量解釋

    • L Contrastive L_\text{Contrastive} LContrastive?:對比損失值。
    • e i , e j e_i, e_j ei?,ej?:樣本 i i i j j j 的嵌入向量。
    • l i j l_{ij} lij?:標簽,若樣本 i i i j j j 相似則為 1,不相似則為 0。
    • d ( e i , e j ) d(e_i, e_j) d(ei?,ej?):嵌入向量 e i e_i ei? e j e_j ej? 之間的距離度量(如歐氏距離)。
    • m m m:邊界值 (margin),用于控制不相似樣本之間的最小距離。
梯度下降與損失景觀優化

梯度下降算法是優化損失景觀的關鍵。其迭代更新公式為:

θ t + 1 = θ t ? η ? L ( θ t ) \theta_{t+1} = \theta_t - \eta \nabla \mathcal{L}(\theta_t) θt+1?=θt??η?L(θt?)

變量解釋

  • θ t + 1 \theta_{t+1} θt+1?:第 t + 1 t+1 t+1 次迭代的模型參數。
  • θ t \theta_t θt?:第 t t t 次迭代的模型參數。
  • η \eta η:學習率,控制參數更新的步長。
  • ? L ( θ t ) \nabla \mathcal{L}(\theta_t) ?L(θt?):損失景觀函數在 θ t \theta_t θt? 處的梯度,指示損失值下降最快的方向。

梯度下降算法就像 “登山者”“損失地形” 上尋找 “最低點”。通過不斷迭代,模型參數 θ \theta θ 沿著梯度方向移動,最終到達損失景觀的 “谷底”,此時模型達到最優狀態。

公式推導

對比損失公式的理解

對比損失公式旨在學習到一種嵌入表示,使得相似的樣本在嵌入空間中距離較近,不相似的樣本距離較遠。

  • 相似樣本 ( l i j = 1 l_{ij} = 1 lij?=1):損失函數變為 L Contrastive = d ( e i , e j ) 2 L_\text{Contrastive} = d(e_i, e_j)^2 LContrastive?=d(ei?,ej?)2,目標是縮小相似樣本的嵌入向量距離 d ( e i , e j ) d(e_i, e_j) d(ei?,ej?)
  • 不相似樣本 ( l i j = 0 l_{ij} = 0 lij?=0):損失函數變為 L Contrastive = max ? ( 0 , m ? d ( e i , e j ) ) 2 L_\text{Contrastive} = \max(0, m - d(e_i, e_j))^2 LContrastive?=max(0,m?d(ei?,ej?))2,目標是增大不相似樣本的嵌入向量距離 d ( e i , e j ) d(e_i, e_j) d(ei?,ej?),至少要大于邊界值 m m m

通過這種方式,對比損失能夠有效地引導模型學習到區分相似性和不相似性的嵌入表示,從而將數據特征融入到損失景觀中。

第四節:相似公式比對

公式/概念共同點不同點
e = E ( x ; W e ) e = E(x; W_e) e=E(x;We?) (嵌入函數)將原始特征映射到低維空間具體實現方式不同,可以是線性層、非線性層等
L ( θ ) = 1 N ∑ i = 1 N L ( f ( x i ; θ ) , y i ) \mathcal{L}(\theta) = \frac{1}{N} \sum_{i=1}^{N} L(f(x_i; \theta), y_i) L(θ)=N1?i=1N?L(f(xi?;θ),yi?) (損失景觀)度量模型性能,指導模型學習具體損失函數 L L L 不同,適用于不同任務
L MSE ( y ^ , y ) = 1 2 ( y ^ ? y ) 2 L_\text{MSE}(\hat{y}, y) = \frac{1}{2} (\hat{y} - y)^2 LMSE?(y^?,y)=21?(y^??y)2 (MSE 損失)回歸任務常用損失函數對預測值和真實值之差的平方敏感
L CE ( y ^ , y ) = ? ∑ c = 1 C y c log ? ( y ^ c ) L_\text{CE}(\hat{y}, y) = - \sum_{c=1}^{C} y_c \log(\hat{y}_c) LCE?(y^?,y)=?c=1C?yc?log(y^?c?) (交叉熵損失)分類任務常用損失函數度量預測概率分布與真實分布的差異
L Contrastive ( e i , e j , l i j ) L_\text{Contrastive}(e_i, e_j, l_{ij}) LContrastive?(ei?,ej?,lij?) (對比損失)學習相似性度量和嵌入表示針對樣本對,鼓勵相似樣本嵌入靠近,不相似樣本嵌入遠離

第五節:核心代碼與可視化

以下 Python 代碼演示了如何使用 PyTorch 構建一個簡單的模型,包含一個嵌入層,并使用 MNIST 數據集進行訓練,可視化嵌入向量的分布,以及損失景觀的簡化表示。

# This code performs the following functions:
# 1. Defines a simple neural network model with an embedding layer for MNIST digit classification.
# 2. Trains the model on the MNIST dataset.
# 3. Visualizes the embeddings of the MNIST digits in a 2D space using PCA.
# 4. Visualizes the loss landscape (simplified 1D representation) during training.
# 5. Enhances visualizations with seaborn aesthetics and matplotlib annotations.
# 6. Outputs intermediate data and visualizations for analysis and debugging.import torch
import torch.nn as nn
import torch.optim as optim
from torchvision import datasets, transforms
from sklearn.decomposition import PCA
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
from torch.utils.data import DataLoader# 1. Define the Model with Embedding Layer
class EmbeddingModel(nn.Module):def __init__(self, embedding_dim=2, num_classes=10):super(EmbeddingModel, self).__init__()self.embedding = nn.Embedding(10, embedding_dim) # Embedding layer for digits 0-9 (one-hot encoded implicitly)self.fc = nn.Linear(embedding_dim, num_classes) # Linear layer for classificationdef forward(self, x):embedded = self.embedding(x) # Get embedding for input digit indexoutput = self.fc(embedded) # Classification layerreturn output# 2. Load MNIST Dataset and Data Loader
transform = transforms.Compose([transforms.ToTensor(), transforms.Normalize((0.1307,), (0.3081,))]) # MNIST normalization
train_dataset = datasets.MNIST(root='./data', train=True, download=True, transform=transform)
train_loader = DataLoader(train_dataset, batch_size=64, shuffle=True)# 3. Initialize Model, Loss Function, and Optimizer
model = EmbeddingModel()
criterion = nn.CrossEntropyLoss() # Cross-entropy loss for classification
optimizer = optim.Adam(model.parameters(), lr=0.01) # Adam optimizer# 4. Training Loop and Loss Tracking
epochs = 10
losses = [] # List to store loss values during trainingfor epoch in range(epochs):running_loss = 0.0for i, data in enumerate(train_loader, 0):inputs, labels = datainputs = labels # Use labels as input indices for embedding layer (simplified example for embedding visualization)optimizer.zero_grad() # Zero gradientsoutputs = model(inputs) # Forward passloss = criterion(outputs, labels) # Calculate lossloss.backward() # Backpropagationoptimizer.step() # Update weightsrunning_loss += loss.item()epoch_loss = running_loss / len(train_loader) # Average loss per epochlosses.append(epoch_loss) # Store epoch lossprint(f'Epoch {epoch+1}, Loss: {epoch_loss:.4f}')print('Finished Training')# 5. Visualize Embeddings using PCA
digit_indices = torch.arange(10) # Indices for digits 0-9
embeddings = model.embedding(digit_indices).detach().numpy() # Get embeddings for digits
pca = PCA(n_components=2) # PCA for 2D visualization
embeddings_pca = pca.fit_transform(embeddings) # Reduce embedding dimensionalityplt.figure(figsize=(8, 6))
sns.scatterplot(x=embeddings_pca[:, 0], y=embeddings_pca[:, 1], hue=np.arange(10), palette=sns.color_palette("tab10", 10), s=100) # Scatter plot of embeddings
plt.title('2D Embedding Visualization of MNIST Digits (PCA)', fontsize=14)
plt.xlabel('PCA Component 1', fontsize=12)
plt.ylabel('PCA Component 2', fontsize=12)
for i in range(10):plt.annotate(str(i), xy=(embeddings_pca[i, 0], embeddings_pca[i, 1]), xytext=(embeddings_pca[i, 0]+0.02, embeddings_pca[i, 1]+0.02), fontsize=10, color='black') # Annotate points with digit labels
plt.grid(True, linestyle='--', alpha=0.6)
plt.legend(title='Digits', loc='upper right')
plt.tight_layout()
plt.show()# 6. Visualize Loss Landscape (Simplified 1D - Loss Curve)
plt.figure(figsize=(8, 5))
plt.plot(range(1, epochs + 1), losses, marker='o', linestyle='-', color='skyblue', linewidth=2) # Line plot of loss curve
plt.title('Loss Landscape (Simplified 1D - Loss Curve)', fontsize=14)
plt.xlabel('Epoch', fontsize=12)
plt.ylabel('Loss', fontsize=12)
plt.grid(True, linestyle=':', alpha=0.7)
plt.annotate(f'Final Loss: {losses[-1]:.4f}', xy=(epochs, losses[-1]), xytext=(epochs-2, losses[-1]+0.1),arrowprops=dict(arrowstyle="->", connectionstyle="arc3,rad=.2"), fontsize=10, color='darkgreen') # Annotation 1
plt.axhline(y=min(losses), color='red', linestyle='--', linewidth=1, label=f'Minimum Loss: {min(losses):.4f}') # Highlight 1
plt.legend(loc='upper right')
plt.tight_layout()
plt.show()# 7. Output Intermediate Data and Information
print("\n--- Embedding Vectors (Digit 0 to 9) ---")
print(embeddings)
print("\n--- PCA Reduced Embeddings (First 5) ---")
print(embeddings_pca[:5])
print("\n--- Loss Values per Epoch ---")
print(losses)
輸出內容描述
嵌入向量 (數字 0 到 9)顯示模型學習到的數字 0 到 9 的嵌入向量,展示特征在低維空間的表示。
PCA 降維后的嵌入向量 (前 5 個)輸出使用 PCA 降維到 2D 后的前 5 個嵌入向量,用于可視化展示。
每輪訓練的損失值顯示每輪訓練的平均損失值,用于觀察損失景觀的下降趨勢。
MNIST 數字 2D 嵌入可視化散點圖可視化展示 MNIST 數字的嵌入向量在 2D 空間中的分布,顏色區分不同數字,觀察特征聚類情況。
損失景觀簡化 1D 表示折線圖 (損失曲線)繪制損失曲線,展示訓練過程中損失值隨 epoch 變化的趨勢,簡化表示損失景觀的下降過程。

代碼功能實現

  1. 構建帶嵌入層的模型:定義一個包含嵌入層的簡單神經網絡模型,用于 MNIST 數字分類。
  2. MNIST 數據集訓練:使用 MNIST 數據集訓練模型,學習數字的嵌入表示。
  3. 嵌入向量可視化:使用 PCA 將高維嵌入向量降維到 2D,并繪制散點圖可視化數字的嵌入分布。
  4. 損失景觀簡化可視化:繪制損失曲線,展示訓練過程中損失值的變化,簡化表示損失景觀的優化過程。
  5. 輸出中間數據:輸出嵌入向量、PCA 降維后的嵌入向量和損失值,方便分析和調試。

第六節:參考信息源

  1. 深度學習與嵌入表示

    • Goodfellow, I., Bengio, Y., & Courville, A. (2016). Deep Learning. MIT Press. (第 5 章:Representation Learning)
    • LeCun, Y., Bengio, Y., & Hinton, G. (2015). Deep learning. Nature, 521(7553), 436-444.
  2. 損失景觀與優化

    • Li, H., Xu, Z., Taylor, G., Studer, C., & Goldstein, T. (2018). Visualizing the Loss Landscape of Neural Nets. Advances in Neural Information Processing Systems, 31.
    • Choromanska, A., Bachmann, P., Lossilla, D., Cremers, D., & Rackauckas, C. (2015). Open Problem: The Landscape of Deep Learning Networks. ArXiv Preprint ArXiv:1412.8776.
  3. 嵌入技術應用

    • Mikolov, T., Chen, K., Corrado, G., & Dean, J. (2013). Efficient Estimation of Word Representations in Vector Space. ArXiv Preprint ArXiv:1301.3781. (Word2Vec)
    • Pennington, J., Socher, R., & Manning, C. D. (2014). GloVe: Global Vectors for Word Representation. Proceedings of the 2014 Conference on Empirical Methods in Natural Language Processing (EMNLP). (GloVe)

參考文獻鏈接

  1. Goodfellow, I., Bengio, Y., & Courville, A. (2016). Deep Learning. MIT Press.
  2. LeCun, Y., Bengio, Y., & Hinton, G. (2015). Deep learning. Nature, 521(7553), 436-444.
  3. Li, H., Xu, Z., Taylor, G., Studer, C., & Goldstein, T. (2018). Visualizing the Loss Landscape of Neural Nets. Advances in Neural Information Processing Systems, 31.
  4. Choromanska, A., Bachmann, P., Lossilla, D., Cremers, D., & Rackauckas, C. (2015). Open Problem: The Landscape of Deep Learning Networks. ArXiv Preprint ArXiv:1412.8776.
  5. Mikolov, T., Chen, K., Corrado, G., & Dean, J. (2013). Efficient Estimation of Word Representations in Vector Space. ArXiv Preprint ArXiv:1301.3781.
  6. Pennington, J., Socher, R., & Manning, C. D. (2014). GloVe: Global Vectors for Word Representation. Proceedings of the 2014 Conference on Empirical Methods in Natural Language Processing (EMNLP).

關鍵詞:

#嵌入原則
#數據特征
#損失景觀
#嵌入函數
#損失函數
#梯度下降
#特征融入
#嵌入可視化
#損失景觀可視化
#表示學習

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

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

相關文章

FPGA|例化生成的PLL功能IP核

1、例化上一篇文章中調用的IP核,新建文件PLL_test.v 2、代碼如圖 timescale 1ns / 1ps module PLL_test(input clk,input rst_n,output clkout0,output clkout1,output clkout2,output clkout3,output clkout4);wire locked;PLL pll_inst(.inclk0(clk),.c0(clkout0)…

【C++】P5734 【深基6.例6】文字處理軟件

博客主頁: [小????????] 本文專欄: C 文章目錄 💯前言💯題目描述💯題目描述輸入格式輸出格式示例輸入與輸出輸入:輸出: 💯我的做法操作1:在文檔末尾插入字符串操作2&…

后盾人JS -- 原型

沒有原型的對象 也有沒有原型的對象 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document<…

洛谷 P1130 紅牌 C語言

題目描述 某地臨時居民想獲得長期居住權就必須申請拿到紅牌。獲得紅牌的過程是相當復雜&#xff0c;一共包括 N 個步驟。每一步驟都由政府的某個工作人員負責檢查你所提交的材料是否符合條件。為了加快進程&#xff0c;每一步政府都派了 M 個工作人員來檢查材料。不幸的是&…

【線程】基于環形隊列的生產者消費者模型

1 環形隊列 環形隊列采用數組來模擬&#xff0c;用取模運算來模擬環狀特性。 1.如何判斷環形隊列為空或者為滿? 當環形隊列為空時&#xff0c;頭和尾都指向同一個位置。當環形隊列為滿時&#xff0c;頭和尾也都指向同一個位置。 因此&#xff0c; 可以通過加計數器或者標記…

二分/雙指針/單調棧隊列專題

1.4924. 矩陣 - AcWing題庫 一開始打表找規律以為是右上角向左下角遞增,但當n很大的時候就不對了,因此我們得去觀察 i * i 100000 * (i - j) j * j i * j 這個式子,我們關心的是這個式子的單調性因此我們可以分別將i和j看作常數來對式子進行求導,可以得到 f(i) 2 * i 10…

Shell $0

個人博客地址&#xff1a;Shell $0 | 一張假鈔的真實世界 我們已經知道在Shell中$0表示Shell腳本的文件名&#xff0c;但在有腳本調用的情形中&#xff0c;子腳本中的$0會是什么值呢&#xff1f;我們通過下面的實例來看。 已測試系統列表&#xff1a; Mac OS X EI Capitan 1…

商品列表及商品詳情展示

前言 本文將展示一段結合 HTML、CSS 和 JavaScript 的代碼&#xff0c;實現了一個簡單的商品展示頁面及商品詳情&#xff0c;涵蓋數據獲取、渲染、搜索及排序等功能。 效果展示 點擊不同的商品會展示對應的商品詳情。 代碼部分 代碼總體實現 <!DOCTYPE html> <htm…

[ VS Code 插件開發 ] 使用 Task ( 任務 ) 代替 createTerminal (終端) 來執行命令

VSCode 官方自己的插件就是這樣執行命令的. 使用體驗 比 默認的終端 好太多了. 重用終端, Shell 集成 , 按任意鍵關閉, 任務是否成功, 左側命令操作 (菜單中功能很多) 等 import * as vscode from vscode; // 執行的命令 let command_str "npm run dev" // 工作目…

大模型綜述一鏡到底(全文八萬字) ——《Large Language Models: A Survey》

論文鏈接&#xff1a;https://arxiv.org/abs/2402.06196 摘要&#xff1a;自2022年11月ChatGPT發布以來&#xff0c;大語言模型&#xff08;LLMs&#xff09;因其在廣泛的自然語言任務上的強大性能而備受關注。正如縮放定律所預測的那樣&#xff0c;大語言模型通過在大量文本數…

Python處理數據庫:MySQL與SQLite詳解

Python處理數據庫&#xff1a;MySQL與SQLite詳解 在數據處理和存儲方面&#xff0c;數據庫扮演著至關重要的角色。Python提供了多種與數據庫交互的方式&#xff0c;其中pymysql庫用于連接和操作MySQL數據庫&#xff0c;而SQLite則是一種輕量級的嵌入式數據庫&#xff0c;Pytho…

【C++】B2124 判斷字符串是否為回文

博客主頁&#xff1a; [小????????] 本文專欄: C 文章目錄 &#x1f4af;前言&#x1f4af;題目描述輸入格式&#xff1a;輸出格式&#xff1a;樣例&#xff1a; &#x1f4af;方法一&#xff1a;我的第一種做法思路代碼實現解析 &#x1f4af;方法二&#xff1a;我…

ubuntuCUDA安裝

系列文章目錄 移動硬盤制作Ubuntu系統盤 前言 根據前篇“移動硬盤制作Ubuntu系統盤”安裝系統后&#xff0c;還不能夠使用顯卡。 如果需要使用顯卡&#xff0c;還需要進行相關驅動的安裝&#xff08;如使用的為Nvidia顯卡&#xff0c;就需要安裝相關的Nvidia顯卡驅動&#xff…

Selenium 使用指南:從入門到精通

Selenium 使用指南&#xff1a;從入門到精通 Selenium 是一個用于自動化 Web 瀏覽器操作的強大工具&#xff0c;廣泛應用于自動化測試和 Web 數據爬取中。本文將帶你從入門到精通地掌握 Selenium&#xff0c;涵蓋其基本操作、常用用法以及一個完整的圖片爬取示例。 1. 環境配…

Sqoop導入MySQL中含有回車換行符的數據

個人博客地址&#xff1a;Sqoop導入MySQL中含有回車換行符的數據 MySQL中的數據如下圖&#xff1a; 檢查HDFS上的目標文件內容可以看出&#xff0c;回車換行符位置的數據被截斷了&#xff0c;導致數據列錯位。 Sqoop提供了配置參數&#xff0c;在導入時丟棄掉數據的分隔符&…

利用matlab尋找矩陣中最大值及其位置

目錄 一、問題描述1.1 max函數用法1.2 MATLAB中 : : :的作用1.3 ind2sub函數用法 二、實現方法2.1 方法一&#xff1a;max和find2.2 方法二&#xff1a;max和ind2sub2.3 方法對比 三、參考文獻 一、問題描述 matlab中求最大值可使用函數max&#xff0c;對于一維向量&#xff0…

PyTorch數據建模

回歸分析 import torch import numpy as np import pandas as pd from torch.utils.data import DataLoader,TensorDataset import time strat = time.perf_counter()

機試題——字符匹配

題目描述 給你一個字符串數組&#xff08;每個字符串均由小寫字母組成&#xff09;和一個字符規律&#xff08;由小寫字母和 . 和 * 組成&#xff09;&#xff0c;識別數組中哪些字符串可以匹配到字符規律上。 . 匹配任意單個字符。* 匹配零個或多個前面的那一個元素。 所謂…

《 C++ 點滴漫談: 二十五 》空指針,隱秘而危險的殺手:程序崩潰的真兇就在你眼前!

摘要 本博客全面解析了 C 中指針與空值的相關知識&#xff0c;從基礎概念到現代 C 的改進展開&#xff0c;涵蓋了空指針的定義、表示方式、使用場景以及常見注意事項。同時&#xff0c;深入探討了 nullptr 的引入及智能指針在提升代碼安全性和簡化內存管理方面的優勢。通過實際…

git push到遠程倉庫時無法推送大文件

一、錯誤 remote: Error: Deny by project hooks setting ‘default’: size of the file ‘scientific_calculator’, is 164 MiB, which has exceeded the limited size (100 MiB) in commit ‘4c91b7e3a04b8034892414d649860bf12416b614’. 二、原因 本地提交過大文件&am…