日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

二十四、TextCNN的原理和实现

發布時間:2024/9/16 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 二十四、TextCNN的原理和实现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.1 TextCNN的模型原理

  • Yoon Kim在2014年將卷積神經網絡CNN應用到文本分類任務,利用多個不同大小的卷積核來提取句子中的關鍵信息,從而能夠更好地捕捉局部相關性。

1.2 TextCNN的詳細過程

  • Embedding:詞嵌入層,單詞的向量表示
  • Convolution:卷積層,提取單詞的特征
  • MaxPolling:池化層,將不同長度句子經過pooling層之后都能變成定長的表示
  • FullConnection:全連接層,輸出每個類別的概率

1.3 通道

  • 圖像中可以利用 (R, G, B) 作為不同channel

  • 文本的輸入的channel通常是不同方式的embedding方式(比如 word2vec或Skip-Gram)

1.4 一維卷積

  • 文本是一維數據,因此在TextCNN卷積用的是一維卷積。

  • 一維卷積需要通過設計不同 kernel_size 的 filter 獲取不同寬度的視野。

1.5 代碼

  • 步驟一:導入工具庫
```python import numpy as np import torch import torch.nn as nn import torch.optim as optim import torch.nn.functional as F
  • 步驟二:模型初始化
def __init__(self):super(TextCNN, self).__init__()self.num_filters_total = num_filters * len(filter_sizes)self.W = nn.Embedding(vocab_size, embedding_size)self.Weight = nn.Linear(self.num_filters_total, num_classes, bias=False)self.Bias = nn.Parameter(torch.ones([num_classes]))self.filter_list = nn.ModuleList([nn.Conv2d(1, num_filters,(size, embedding_size)) for size in filter_sizes])print(" +++")
  • 步驟三:前向計算
def forward(self, X):embedded_chars = self.W(X) # [batch_size, embedding_size, sequence_length]embedded_chars = embedded_chars.unsqueeze(1) # add channel(=1) [batch, channel(=1), sequence_length, embedding_size]pooled_outputs = []for i, conv in enumerate(self.filter_list):# conv : [input_channel(=1), output_channel(=3), (filter_height, filter_width), bias_option]h = F.relu(conv(embedded_chars))# mp : ((filter_height, filter_width))mp = nn.MaxPool2d((sequence_length - filter_sizes[i] + 1, 1))# pooled : [batch_size(=6), output_height(=1), output_width(=1), output_channel(=3)]pooled = mp(h).permute(0, 3, 2, 1)pooled_outputs.append(pooled)# [batch_size(=6), output_height(=1), output_width(=1), output_channel(=3) * 3]h_pool = torch.cat(pooled_outputs, len(filter_sizes))# [batch_size(=6), output_height * output_width * (output_channel * 3)]h_pool_flat = torch.reshape(h_pool, [-1,self.num_filters_total])model = self.Weight(h_pool_flat) + self.Bias # [batch_size, num_classes]return model
  • 步驟四:主函數
if __name__ == '__main__':embedding_size = 2 # 詞向量的維度sequence_length = 3 # 句子的長度num_classes = 2 # 分類結果filter_sizes = [2, 2, 2] # 卷積核num_filters = 3 # 通道的數量# 3 words sentences (=sequence_length is 3)sentences = ["i love you", "he loves me", "she likes baseball", "i hate you", "sorry for that", "this is awful"]labels = [1, 1, 1, 0, 0, 0] # 1 is good, 0 is not good.# 1.建立詞匯表word_list = " ".join(sentences).split()word_list = list(set(word_list))word_dict = {w: i for i, w in enumerate(word_list)}vocab_size = len(word_dict)# 2. 構建模型model = TextCNN()criterion = nn.CrossEntropyLoss()optimizer = optim.Adam(model.parameters(), lr=0.001)inputs = torch.LongTensor([np.asarray([word_dict[n] for n in sen.split()]) for sen in sentences])targets = torch.LongTensor([out for out in labels]) # To using Torch Softmax Loss function# 3.訓練for epoch in range(5000):optimizer.zero_grad()output = model(inputs)# output : [batch_size, num_classes], target_batch : [batch_size] (LongTensor, not one-hot)loss = criterion(output, targets)if (epoch + 1) % 1000 == 0:print('Epoch:', '%04d' % (epoch + 1), 'cost =', '{:.6f}'.format(loss))loss.backward()optimizer.step()# Testtest_text = 'sorry hate you'tests = [np.asarray([word_dict[n] for n in test_text.split()])]test_batch = torch.LongTensor(tests)# Predictpredict = model(test_batch).data.max(1, keepdim=True)[1]if predict[0][0] == 0:print(test_text, "is Bad Mean...")else:print(test_text, "is Good Mean!!")

總結

以上是生活随笔為你收集整理的二十四、TextCNN的原理和实现的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 久久免费黄色 | 看黄色一级片 | 国产成人自拍视频在线观看 | 黄色的毛片| 公肉吊粗大爽色翁浪妇视频 | 欧美成人做爰大片免费看黄石 | 神马久久网站 | 国产精品第二十页 | 欧美黄色性 | 亚洲成人伦理 | 欧美1区2区3区4区 | 手机av资源 | 四色成人av永久网址 | 日韩欧美亚洲一区二区 | 国产精品海角社区 | 色综合狠狠 | 午夜av在线播放 | 久草免费新视频 | 丰满人妻一区二区三区无码av | 超能一家人电影免费喜剧在线观看 | 三级视频网站 | 最近日韩中文字幕 | 欧美一级黄色录像 | 黄网站免费大全入口 | 91麻豆成人精品国产 | 国产超碰人人爽人人做人人爱 | www.成人免费 | 亚洲精品91天天久久人人 | 日韩在线观看中文字幕 | 一区二区三区免费播放 | 欧洲亚洲自拍 | 男女日批视频 | 貂蝉被到爽流白浆在线观看 | 特黄aaaaaa私密按摩 | 又色又爽又高潮免费视频国产 | 五月天堂色 | 99热91| 激情小说中文字幕 | 天天射狠狠干 | 日本久久久久久久久久 | 美女视频一区二区 | 我把护士日出水了视频90分钟 | 折磨小男生性器羞耻的故事 | 福利视频黄色 | 羞羞动漫在线观看 | 亚洲日皮| 蜜臀av性久久久久蜜臀aⅴ流畅 | 91国产丝袜播放在线 | 春色伊人 | 欧美极品视频在线观看 | 日本免费三级网站 | 国产xxxxx视频| 国产一区二区欧美 | 天天躁日日躁狠狠躁喷水 | 雷电将军和丘丘人繁衍后代视频 | 毛片a片免费观看 | 亚洲国产成人精品视频 | 97免费公开视频 | 亚洲国产精华液网站w | 97毛片| 靠逼视频网站 | 都市激情校园春色 | 亚洲天堂影院在线观看 | 欧美系列一区二区 | 天天爽夜夜爽夜夜爽精品 | 自拍偷拍五月天 | 国产视频二区 | 色99视频| 久久成人一区二区 | 色多多视频在线 | 国产欧美一区二区三区国产幕精品 | 人妻夜夜爽天天爽 | 先锋成人| 男插女视频免费 | 97se综合| 久久靠逼视频 | 熟女俱乐部五十路六十路av | 亚洲国产欧美在线观看 | 大白屁股一区二区视频 | 少妇特黄a一区二区三区 | 爱爱视频在线看 | 日本人妻换人妻毛片 | 国产不卡一区二区视频 | 免费黄色看片网站 | 国产在线视频自拍 | 狠狠操在线 | 嫩草国产在线 | 奇米综合| 中文字幕免费在线看线人动作大片 | 亚洲最色网站 | 淫片aaa| 免费网站看av | 夜夜嗨一区| 欧美少妇xxxxx | av网页在线 | 九色国产视频 | 亚洲欧美一区二区精品久久久 | 久久77 | 伊人一级片 |