【人工智能全栈学习-知识图谱】零基础实践——动手学关系抽取
一、问题
本章问题导读,如果面试前以下题目还有不会的建议看本篇文章 |
---|
二、人工智能全栈学习系列课程
【人工智能全栈学习】机器学习基础知识——线性回归与逻辑回归(看完就全懂了)
【人工智能全栈学习】机器学习基础知识——传统机器学习(看完就全懂了)
【人工智能全栈学习】机器学习基础知识——分类器和机器学习三大定律(看完就全懂了)
【人工智能全栈学习-情感分析】BiLSTM(看完就全懂了)
【人工智能全栈学习-情感分析】Bert(看完就全懂了)
【人工智能全栈学习-知识图谱】零基础实践——动手学关系抽取
【人工智能全栈学习-知识图谱】零基础理论——动手学关系抽取:TextCNN&LSTM
【人工智能全栈学习-计算机视觉】Yolo系列(看完就全懂了)
【人工智能全栈学习-图像分割】语义分割和实例分割(看完就全懂了)
三、代码
CNN:可以抽象成Embeding和基础类
基础类设计讲解
Embbeding
Con:卷积
Pol:池化
Fc:全连接
两个点表示退到上级目录
from ..utils import ensure_dir
BasicModule.py:负责初始化,加载模型和保存模型,通用
import torch
import torch.nn as nn
import time
from ..utils import ensure_dir
class BasicModule(nn.Module):
'''
封装nn.module,提供save和load方法
'''
def __init__(self):
super(BasicModule, self).__init__()
self.model_name=str(type(self))
'''
加载指定路径的模型
'''
def load(self,path):
self.load_state_dict(torch.load(path))
'''保存模型'''
def save(self,epoch=0,name=None):# 看不懂参数设置
prefix='checkpoints/'
ensure_dir(prefix)# 确保模型存在,在utils里存了该函数
if name is None:
name=prefix+self.model_name+"_"+f'epoch{epoch}_'
name=time.strftime(name+"%m%d_%H_%M_%S.pth")# 保存时间
else:
name=prefix+name+'_'+self.model_name+"_"+f'epoch{epoch}_'
name=time.strftime(name+"%m%d_%H_%M_%S.pth")
torch.save(self.state_dict(),name)
return name
CNN: