深度学习
文章平均质量分 61
weifengma-wish
这个作者很懒,什么都没留下…
展开
-
conda目录的整体迁移
文件2:/publicDisk/weifeng_ma/01.software/01.Anaconda3/bin/conda-env。文件1:/publicDisk/weifeng_ma/01.software/01.Anaconda3/bin/conda。背景: 新买了一台服务器,想把原来旧服务器上的conda整体迁移到新服务器上,于是就做了尝试。第二步:修改bashrc中conda的初始化路径,如下: 旧路径改完新路径。第三步: 修改两个文件的首行, 即引用的旧python路径改为新路径。原创 2024-09-29 19:19:21 · 161 阅读 · 0 评论 -
Linux 平台上安装 NVIDIA GPU 驱动和 CUDA Toolkit
访问 [NVIDIA cuDNN 下载页面](https://developer.nvidia.com/cudnn),下载适合你的 CUDA 版本的 cuDNN,然后按照说明进行安装。访问 [NVIDIA 驱动下载页面](https://www.nvidia.com/Download/index.aspx),选择你的 GPU 型号和操作系统,然后下载最新的驱动程序。以上步骤涵盖了在 Linux 上安装 NVIDIA GPU 驱动和 CUDA Toolkit 的基本流程。2. 按照安装向导的提示进行安装。原创 2024-09-29 16:29:57 · 412 阅读 · 0 评论 -
torch.nn.MultiheadAttention的返回值
这是多头注意力计算后的输出,它将输入的 `query` 与 `key` 和 `value` 进行注意力计算,并通过多个注意力头来捕捉序列中不同位置的依赖关系。1. **`attn_output`** 的形状是 `(10, 32, 512)`,表示序列中每个位置经过多头注意力机制后的输出。2. **`attn_output_weights`**(注意力权重):表示注意力机制为输入序列每个位置分配的注意力权重。- **`attn_output`**:多头注意力的输出张量,包含序列中每个位置的上下文信息。原创 2024-09-20 11:05:30 · 304 阅读 · 0 评论 -
torch.nn.Transformer提取注意力图
1. **`save_attention_weights` hook**: 我们使用 `register_forward_hook` 在每个 `MultiheadAttention` 层上添加一个钩子,以提取注意力权重。- **`attention_weights`**: 这个列表包含每个 `MultiheadAttention` 层的注意力权重,形状为 `(batch_size, num_heads, sequence_length, sequence_length)`。原创 2024-09-20 10:04:26 · 367 阅读 · 0 评论 -
nn.Embedding 类
num_embeddings` 是 `nn.Embedding` 中的一个关键参数,它指定**嵌入层中词汇表的大小**,也就是嵌入矩阵的行数。- **生成嵌入矩阵**:`nn.Embedding` 生成的嵌入矩阵的大小是 `(num_embeddings, embedding_dim)`,其中每一行对应一个词的嵌入向量。- **`num_embeddings=10000`**:嵌入层中有 10,000 个唯一的索引,每个索引对应一个词汇表中的单词或标记。# 前向传播,返回这些索引对应的嵌入向量。原创 2024-09-12 10:15:01 · 236 阅读 · 0 评论 -
Dataset对象
例如,在 PyTorch 中,你可以创建一个自定义的 `Dataset` 类,通过继承 `torch.utils.data.Dataset`,并实现 `__getitem__` 和 `__len__` 方法。- 当你通过 `dataset[idx]` 访问 `Dataset` 对象时,Python 会调用 `__getitem__` 方法,并将 `idx` 作为参数传递给它。- 例如,当你调用 `len(dataset)` 时,Python 会调用 `__len__` 方法来获得数据集的大小。原创 2024-09-11 11:25:52 · 348 阅读 · 0 评论 -
关于Transform模型的一些问题
4. **词汇表中的概率分布**:最终的隐藏状态向量通过一个线性变换映射到与词汇表大小相同的向量,随后通过 softmax 函数转化为概率分布。2. **多头自注意力机制**:解码器通过多头自注意力机制,结合上下文信息(包括来自编码器的上下文和已经生成的词)来生成新的上下文表示。1. **输入嵌入**:解码器接收当前的输入单词或前一步的预测结果(在生成任务中),将其转换为嵌入向量。5. **选择下一个单词**:根据该概率分布,从词汇表中选取概率最高的单词作为下一个单词的预测结果。原创 2024-09-10 14:32:24 · 204 阅读 · 0 评论 -
Self Attention:在Transform模型中,为什么内积越大,模型会认为这两个词之间的关系较强。
内积 \( \mathbf{q} \cdot \mathbf{k} \) 的大小反映了一个词的查询向量和另一个词的键向量之间的相似程度。其中,\( \|\mathbf{q}\| \) 和 \( \|\mathbf{k}\| \) 分别是向量的长度,\( \theta \) 是两个向量之间的夹角。当两个向量的方向接近(即夹角 \( \theta \) 小),它们的内积会更大,这意味着两个向量在同一方向上具有更大的投影重叠,换句话说,它们在某种意义上更加相似或相关。#### 2. 在自注意力机制中的应用。原创 2024-09-10 10:04:07 · 303 阅读 · 0 评论 -
神经网络基础知识
理解深度神经网络——DNN(Deep Neural Networks)_dnn分类的原理-CSDN博客 https://blog.csdn.net/qq_41665685/article/details/105762611?spm=1001.2014.3001.5506 transform模型理解参考: https://zhuanlan.zhihu.com/p/338817680转载 2024-09-05 17:46:17 · 49 阅读 · 0 评论 -
AutoModel和GPT2Model区别
它是`AutoModel`的一个子类,但它针对的是GPT-2模型。如果你已经确定要使用GPT-2模型,并且不需要自动选择其他类型的模型,那么直接使用`GPT2Model`是更简单的选择。1. **AutoModel:** `AutoModel`是一个通用的模型类,可以用来加载任何预训练的Transformer模型,包括BERT、GPT、RoBERTa等等。如果你希望能够动态地选择加载不同类型的模型,并且希望能够适应不同的任务和模型架构,那么使用`AutoModel`是一个更好的选择。原创 2024-04-11 17:17:24 · 207 阅读 · 1 评论 -
tokenizer() 和 tokenizer.encode()
是 Hugging Face Transformers 库中的两种不同的方法,它们用于文本编码的不同情况。方法适用于对单个文本进行简单的编码操作。您可以根据需要选择合适的方法来进行文本编码。方法通常用于对批量文本进行编码,并提供了更多的灵活性和功能,而。原创 2024-04-11 10:41:20 · 882 阅读 · 0 评论 -
huggingface之Transformers学习笔记
AutoProcessor 始终有效的自动选择适用于您使用的模型的正确class,无论您使用的是Tokenizer、ImageProcessor、Feature extractor还是Processor。1)对于文本,使用分词器(Tokenizer)将文本转换为一系列标记(tokens),并创建tokens的数字表示,将它们组合成张量。4)多模态输入,使用处理器(Processor)结合了Tokenizer和ImageProcessor或Processor。原创 2024-04-22 11:11:49 · 236 阅读 · 0 评论