学习BiLSTM

本文介绍了LSTM的核心思想,包括其记忆块结构、门控机制,以及如何通过门控单元添加和删除信息。接着详细解析了LSTM的步骤,包括遗忘门、输入门和输出门的作用。此外,还简要提及了BiLSTM,它是前向LSTM与后向LSTM的结合,用于建模上下文信息。
摘要由CSDN通过智能技术生成

处理数据集【使用词汇新式】

torch.device()
以下两种方式为一个意思,经常我们会看见第一种同第二种

device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
if torch.cuda.is_available():
	device = torch.device("cuda")
else:
	device = torch.device("cpu")

这个device的用处是作为Tensor或者Model被分配到的位置。

这个地方的cuda:0 实际上并不是0号GPU,他取决于CUDA_VISIBLE_DEVICES
然后逻辑GPU和物理GPU有一个对应关系
如果CUDA_VISIBLE_DEVICES为2,1,3
那么CUDA:0就是2号GPU, CUDA:1 就是1号GPU CUDA:3 就是3号GPU

return torch.device('cuda:0' if cuda else 'cpu')

torch.device代表将torch.Tensor分配到的设备的对象。torch.device包含一个设备类型(‘cpu’或‘cuda’)和可选的设备序号。如果设备序号不存在,则为当前设备。

n_hidden————# number of hidden units in one cell【一个单元格中的隐藏单元数】

append() 方法向列表末尾追加元素。

','.join('abc')“将字符串abc中的每个成员以字符’,'分隔开再拼接成一个字符串”,输出结果为:‘a,b,c’

vocab = list(set(" ".join(sentences).split()))
word2idx = {
   w: i for i, w in enumerate(vocab)}
vocab_size = len(word2idx)
##

def make_data(sentences):
    inputs = []
    for sen in sentences:
        inputs.append(np.asarray([word2idx[n] for n in sen.split()]))

    targets = []
    for out in labels:
        targets.append(out)  # To using Torch Softmax Loss function

    return torch.LongTensor(inputs), torch.LongTensor(targets)


inputs, targets = make_data(sentences)
dataset = Data.TensorDataset(inputs, targets)
loader = Data.DataLoader(dataset, batch_size, True)

介绍长短期记忆网络

转载:https://blog.csdn.net/zhengxqq27/article/details/90481590
递归神经网络的结果与传统神经网络有一些不同,它带有一个指向自身的环,用来表示它可以传递当前时刻处理的信息给下一时刻使用。
zhengxq27

所有的递归神经网络都是由重复神经网络模块构成的一条链,可以看到它的处理层非常简单,通常是一个单tanh层,通过当前输入及上一时刻的输出来得到当前输出。与神经网络相比,经过简单地改造,它已经可以利用上一时刻学习到的信息进行当前时刻的学习了。
LSTM的结构与上面相似,不同的是它的重复模块会比较复杂一点,它有四层结构:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值