11 2021 档案
摘要:导入包 from sklearn.datasets import load_iris, load_wine from sklearn import tree from sklearn,model_selection import train_test_split from sklearn.metri
阅读全文
摘要:github_log 这个得到的数据里实际上有一些重复的数据,这些行所有的字段都一样,但是created_at 却差个几秒钟,导致出现数据重复。 查表: set odps.sql.validate.orderby.limit=false; SELECT actor_id, repo_id, crea
阅读全文
摘要:import matplotlib.pyplot as plt import numpy as np import pandas as pd import seaborn as sns %matplotlib inline x = np.linspace(0, 10, 1000) y = np.co
阅读全文
摘要:中文 mpl.rcParams['font.sans-serif'] = ['SimHei'] mpl.rcParams['axes.unicode_minus'] = False 设置seaborn风格 sns.set_theme(style='darkgrid') x = np.linspace
阅读全文
摘要:做的第一个nlp任务,用的textcnn来实现推特文本分类。 任务描述 判断一个tweet是否真的再说现实里的灾难,而不是说只是用一些类似灾难的形容词。 数据预处理 import torch import torchtext import torch.nn as nn import torch.ut
阅读全文
摘要:texthero hugging face tokenizer
阅读全文
摘要:这个想法其实由来已久,一直是想对github里机器人账号和正常User账号进行二分类。刚好最近做了一个actor中间表,发现github里会提供User的type,这个type里有User也有Bot。于是我就想简单用一下这些账号的用户名做一个二分类训练。 导入需要的包 import matplotl
阅读全文
摘要:终于来到transformer了,之前的几个东西都搞的差不多了,剩下的就是搭积木搭模型了。首先来看一下transformer模型,OK好像就是那一套东西。 transformer是纯基于注意力机制的架构,但是也是之前的encoder-decoder架构。 层归一化 这里用到了层归一化,和之前的批量归
阅读全文
摘要:这个多头attention确实挺搞的,这个东西绕来绕去,看torch的文档也看不懂,看源码也迷迷糊糊的,可能我的智商就是不够吧。。。枯了 论文里的公式求法,可以看到它因为是self-multiheadsAttention。多头自注意力机制,所以它这里的Q K V 实际上是同一个东西,也就是最后一维都
阅读全文
摘要:因为自己开始了transformer的学习,但transformer的学习还需要一点卷积里的基础知识。 这里主要还是说学习一个ResNet。 在这张图里,五角星代表了最优位置。对于非嵌套的函数,虽然函数变大变复杂了,但其实还是在远离最优点。但是对于嵌套的函数,就可以做到越来越解决最优点,至少不会出现
阅读全文
摘要:批量归一化实际上也是一个层,可以直接调用torch的api。 我们在训练顶部的层,实际上干的就是在拟合底部层。所以顶部的层会收敛的很快,但是底部的层数据变化后,顶部又要重新进行训练。 一个简单的实现就是将分布的均值和方差进行固定。这个实现也很简单。 \[ \mu_{B}=\frac{1}{|B|}
阅读全文
摘要:训练集、测试集、验证集的划分 fixed or random fixed split:对dataset只划分一次 random split: 对dataset进行random split,但是对不同的random seed得到的performance做一个求平均。 graph is special
阅读全文
摘要:之前在seq2seq算法上浪费了太多时间了。。。搞得本来早就应该进行Attention被拖到现在,真实无语了,被自己的愚蠢给吓到了。 What is Attention 我个人的理解是Attention是一种重要度区分机制。 注意力使得我们关注的东西具有了区分度,也就是说,原本没有差异的一组事物,被
阅读全文
摘要:编码器解码器架构 编码器-解码器架构就是构造一个编码器,通过编码器来获得解码器的初始state。这个在架构在很多情况下都可以使用,比如在Seq2Seq算法里。比如在机器翻译领域,通过编码器把要翻译的句子编码为一个初始状态,然后用解码器对这个状态进行解码,解码得到需要的翻译句子。 class Enco
阅读全文
摘要:这里就不手动实现了,因为其实大同小异,把代码看懂了,下次要用的时候直接抄就行了。 vocab class Vocab: def __init__(self, tokens=None, min_freq=0, reserved_tokens=None): counter = count_corpus(
阅读全文
摘要:import torch import torch.nn as nn import torch.nn.functional as F import math class LSTM(nn.Module): def __init__(self, indim, hidim, outdim): super(
阅读全文
摘要:GRU说白了就是加了两个门,这两个门控制最终隐藏状态的输出,其中还是那一套换汤不换药。 R是重置门,决定上一个时间步是否要被重置,如果R元素全为0,很显然我们就丢掉了上一个时间步的h信息。 S是更新门,决定了这个时刻的候选隐藏状态应该怎么输出。 注意
阅读全文
摘要:导入数据并设定随机数种子 import torch import torch.nn as nn import numpy as np import random import pandas as pd import matplotlib.pyplot as plt from d2l import t
阅读全文
摘要:导入数据 import torch import torch.nn as nn from torch.utils import data import torchvision from torchvision import transforms import numpy as np import p
阅读全文
摘要:为什么softmax 里面要用交叉熵?这个问题之前困扰我挺久的,但这两篇博文完美解答了我的疑惑。 交叉熵、相对熵和负对数似然的理解 - 最大的梦想家的文章 - 知乎 https://zhuanlan.zhihu.com/p/268171298 Kullback-Leibler(KL)散度介绍 - 灰
阅读全文
摘要:权重衰减 使用均方范数作为硬性限制 但我们最小化 loss 的时候,需要限制权重 w 的大小,越小的 意味着更强的正则项。 但实际上,我们不会这么做的,我们只是在做损失函数时候,加入了 ,就像下面做的那样。 其中$\lambd
阅读全文
摘要:导入数据 train_content = pd.read_csv("./house_prices/data/train.csv") test_content = pd.read_csv("./house_prices/data/test.csv") train_content.head() 特征工程
阅读全文
摘要:读取数据 用 pd.read_csv 来读取csv数据,目前对我来说已经够用了,用 index_col 指定索引。 DataFrame 构建 可以直接从 csv 读取数据,也可以用 Series 来构建, 或者用 dict 来构建, 这个自由度还是很大的。 DateFrame 操作 以titanic
阅读全文