import torch
import torchtext
import numpy as np
import torch.nn.functional as F
from torchtext.vocab import GloVe
import torch.nn as nn
import time
start=time.time()
#定义样本处理操作
#小写 截取评论长度为200(少了填充、多了截取) 第一维度是batch
TEXT = torchtext.data.Field(lower=True,fix_length=200,batch_first=True)
#sequential表示是否顺序
LABEL = torchtext.data.Field(sequential=False)
#下载torchtext内置的IMDB电影评论数据集并切分训练集和测试集
#Field知道如何处理原始数据,用户告诉Field去哪里处理
train,test = torchtext.datasets.IMDB.splits(TEXT,LABEL)
#创建词表
#训练集、出现次数最多的10000个单词创建词表、若单词出现次数少于3则抛弃
TEXT.build_vocab(train,max_size=10000,min_freq=3)
LABEL.build_vocab(train)
#生成器
train_iter, test_iter = torchtext.data.BucketIterator.splits((train,test),batch_size=16)
device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
#创建模型
class Net(nn.Module):
def __init__(self):
super(Net, self).__init__()
#nn.Embedding()类似于nn.Conv2d()
#有len(TEXT.v
基于pytorch的自建模型简单文本分类(fit函数有变化)
最新推荐文章于 2024-05-01 22:41:07 发布