嵌入原则:数据特征如何 融入 模型的 损失地形

嵌入原则:数据特征如何 融入 模型的 损失地形

第一节:嵌入原则的基本概念与公式解释

机器学习中的嵌入原则,就像 “雕刻师”“石块的纹理” 逐渐融入到 “雕塑的造型” 中。数据特征不再是独立的输入,而是被模型 “吸收”“内化”,最终体现在模型的 “损失地形” 上。

核心内容

【嵌入原则的核心思想是,数据特征不是 “外挂” 在模型上的,而是模型 “自身结构” 的一部分。模型通过学习,将数据特征 “编码”“低维向量”,这些向量 “镶嵌” 在模型的参数空间中,共同塑造了模型的 “损失地形”。这个 “损失地形”“坡度”“谷底”,直接决定了模型的 “学习方向”“最终性能”。】

嵌入函数的基本公式

嵌入过程可以用一个嵌入函数 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)=Wex。如果词向量 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=Wevawesome 能够更好地帮助模型进行情感分类。

第二节:损失景观与特征融入

损失函数与损失景观

损失函数 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(θ)=N1i=1NL(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=1Cyclog(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)=lijd(ei,ej)2+(1lij)max(0,md(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,md(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(θ)=N1i=1NL(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=1Cyclog(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.mzph.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…