# -*- coding: utf-8 -*-
"""
-------------------------------------------------
File Name: models
Description :
Author : Stephen.Lau
date: 2019/3/25
-------------------------------------------------
Change Activity:
2019/3/25:
-------------------------------------------------
"""
# encoding: utf-8
"""
@author: Alex
@contact: ialexwwang@gmail.com
@version: 0.1
@license: Apache Licence
@file: deep_models.py
@time: 2019-02-21 17:54
@Reference: https://github.com/zake7749/DeepToxic/blob/master/sotoxic/models/keras/model_zoo.py
"""
# from __future__ import absolute_import, division
import keras
from keras.layers import Bidirectional, Conv1D
from keras.layers import Dense, Lambda, Flatten
from keras.layers import Dropout, SpatialDropout1D
from keras.layers import GlobalAveragePooling1D, GlobalMaxPooling1D, MaxPooling1D
from keras.layers import concatenate
from keras.models import Model
from kashgari.layers import AttentionWeightedAverage, KMaxPooling, LSTMLayer, GRULayer
from kashgari.tasks.classification.base_model import ClassificationModel
class CNNModel(ClassificationModel):
__architect_name__ = 'CNNModel'
__base_hyper_parameters__ = {
'conv1d_layer': {
'filters': 128,
'kernel_size': 5,
'activation': 'relu'
},
'max_pool_layer': {},
'dense_1_layer': {
'units': 64,
'activation': 'relu'
},
'activation_layer': {
'activation': 'softmax'
},
'optimizer': {
'module': 'keras.optimizers',
'name': 'Adam',
'params': {
'lr': 1e-3,
'decay': 0.0
}
},
'compile_params': {
'loss': 'categorical_crossentropy',
# 'optimizer': 'adam',
'metrics': ['accuracy']
}
}
def build_model(self):
base_model = self.embedding.model
conv1d_layer = Conv1D(**self.hyper_parameters['conv1d_layer'])(base_model.output)
max_pool_layer = GlobalMaxPooling1D(**self.hyper_parameters['max_pool_layer'])(conv1d_layer)
dense_1_layer = Dense(**self.hyper_parameters['dense_1_layer'])(max_pool_layer)
dense_2_layer = Dense(len(self.label2idx), **self.hyper_parameters['activation_layer'])(dense_1_layer)
model = Model(base_model.inputs, dense_2_layer)
optimizer = getattr(eval(self.hyper_parameters['optimizer']['module']),
self.hyper_parameters['optimizer']['name'])(
**self.hyper_parameters['optimizer']['params'])
model.compile(optimizer=optimizer, **self.hyper_parameters['compile_params'])
self.model = model
self.model.summary()
class BLSTMModel(ClassificationModel):
__architect_name__ = 'BLSTMModel'
__base_hyper_parameters__ = {
'lstm_layer': {
'units': 256,
'return_sequences': False
},
'activation_layer': {
'activation': 'softmax'
},
'optimizer': {
'module': 'keras.optimizers',
'name': 'Adam',
'params': {
'lr': 1e-3,
'decay': 0.0
}
},
'compile_params': {
'loss': 'categorical_crossentropy',
# 'optimizer': 'adam',
'metrics': ['accuracy']
}
}
def build_model(self):
base_model = self.embedding.model
blstm_layer = Bidirectional(LSTMLayer(**self.hyper_parameters['lstm_layer']))(base_model.output)
dense_layer = Dense(len(self.label2idx), **self.hyper_parameters['activation_layer'])(blstm_layer)
output_layers = [dense_layer]
model = Model(base_model.inputs, output_layers)
optimizer = getattr(eval(self.hyper_parameters['optimizer']['module']),
self.hyper_parameters['optimizer']['name'])(
**self.hyper_parameters['optimizer']['params'])
model.compile(optimizer=optimizer, **self.hyper_parameters['compile_params'])
self.model = model
self.model.summary()
class CNNLSTMModel(ClassificationModel):
__architect_name__ = 'CNNLSTMModel'
__base_hyper_parameters__ = {
'conv_layer': {
'filters': 32,
'kernel_size': 3,
'padding': 'same',
'activation': 'relu'
},
'max_pool_layer': {
'pool_size': 2
},
'lstm_layer': {
'units': 100
},
'activation_layer': {
'activation': 'softmax'
},
'optimizer': {
'module': 'keras.optimizers',
'name': 'Adam',
'params': {
'lr': 1e-3,
'decay': 0.0
}
},
'compile_params': {
'loss': 'categorical_crossentropy',
# 'optimizer': 'adam',
'metrics': ['accuracy']
}
}
def build_model(self):
base_model = self.embedding.model
conv_layer = Conv1D(**self.hyper_parameters['conv_layer'])(base_model.output)
max_pool_layer = MaxPooling1D(**self.hyper_parameters['max_pool_layer'])(conv_layer)
lstm_layer = LSTMLayer(**self.hyper_parameters['lstm_layer'])(max_pool_layer)
dense_layer = Dense(len(self.label2idx),
**self.hyper_parameters['activation_layer'])(lstm_layer)
output_layers = [dense_layer]
model = Model(base_model.inputs, output_layers)
optimizer = getattr(eval(self.hyper_parameters['optimizer']['module']),
self.hyper_parameters['optimizer']['name'])(
**self.hyper_parameters['optimizer']['params'])
model.compile(optimizer=optimizer, **self.hyper_parameters['compile_params'])
self.model = model
self.model.summary()
class AVCNNModel(ClassificationModel):
__architect_name__ = 'AVCNNModel'
__base_hyper_parameters__ = {
'spatial_dropout': {
'rate': 0.25
},
'conv_0': {
'filters': 300,
'kernel_size': 1,
'kernel_initializer': 'normal',
'padding': 'valid',
'activation': 'relu'
},
'conv_1': {
'filters': 300,
'kernel_size': 2,
'kernel_initializer': 'normal',
'padding': 'valid',
'activation': 'relu'
},
'conv_2': {
'filters': 300,
'kernel_size': 3,
'kernel_initializer': 'normal',
'padding': 'valid',
'activation': 'relu'
},
'conv_3': {
'filters': 300,
'kernel_size': 4,
'kernel_initializer': 'normal',
'padding': 'valid',
'activation': 'relu'
},
# ---
'attn_0': {},
'avg_0': {},
'maxpool_0': {},
# ---
'maxpool_1': {},
'attn_1': {},
'avg_1': {},
# ---
'maxpool_2': {},
'attn_2': {},
'avg_2': {},
# ---
'maxpool_3': {},
'attn_3': {},
'avg_3': {},
# ---
'v0_col': {
# 'mode': 'concat',
'axis': 1
},
'v1_col': {
# 'mode': 'concat',
'axis': 1
},
'v2_col': {
# 'mode': 'concat',
'axis': 1
},
'merged_tensor': {
# 'mode': 'concat',
'axis': 1
},
'dropout': {
'rate': 0.7
},
'dense': {
'units': 144,
'activation': 'relu'
},
'activation_layer': {
'activation': 'softmax'
},
'optimizer': {
'module': 'keras.optimizers',
'name': 'Adam',
'params': {
'lr': 1e-3,
'decay': 1e-7
}
没有合适的资源?快使用搜索试试~ 我知道了~
基于CNN、LSTM、Transformer以及BERT各种神经网络进行情感分类项目源码.zip
共16个文件
py:16个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 1 下载量 40 浏览量
2024-04-10
13:58:44
上传
评论
收藏 42KB ZIP 举报
温馨提示
基于CNN、LSTM、Transformer以及BERT各种神经网络进行情感分类项目源码.zip本资源中的源码都是经过本地编译过可运行的,资源项目的难度比较适中,内容都是经过助教老师审定过的能够满足学习、使用需求,如果有需要的话可以放心下载使用。 基于CNN、LSTM、Transformer以及BERT各种神经网络进行情感分类项目源码.zip本资源中的源码都是经过本地编译过可运行的,资源项目的难度比较适中,内容都是经过助教老师审定过的能够满足学习、使用需求,如果有需要的话可以放心下载使用。 基于CNN、LSTM、Transformer以及BERT各种神经网络进行情感分类项目源码.zip本资源中的源码都是经过本地编译过可运行的,资源项目的难度比较适中,内容都是经过助教老师审定过的能够满足学习、使用需求,如果有需要的话可以放心下载使用。 基于CNN、LSTM、Transformer以及BERT各种神经网络进行情感分类项目源码.zip本资源中的源码都是经过本地编译过可运行的,资源项目的难度比较适中,内容都是经过助教老师审定过的能够满足学习、使用需求,如果有需要的话可以放心下载使用。
资源推荐
资源详情
资源评论
收起资源包目录
各种神经网络进行情感分类.zip (16个子文件)
LauSentiNet-master
LSTM
LSTM+random+Sentiment.py 7KB
LSTM+glove+Sentiment.py 9KB
Transformer_ATT
Transformer_Attention.py 5KB
Transformer_ATT_sentiment.py 9KB
BiLSTM
BiLSTM+random+Sentiment.py 7KB
BiLSTM+glove+Sentiment.py 8KB
CNN
CNN+random+Sentiment.py 8KB
CNN+glove+Senntiment.py 9KB
CNN_LSTM
CNNLSTM+Random+Sentiment.py 8KB
CNNLSTM+glove+Sentiment.py 9KB
BERT
models.py 25KB
base_model.py 14KB
BERT+CNNLSTM.py 4KB
BERT+CNN.py 4KB
BERT+RCNN.py 4KB
Bert_LR.py 3KB
共 16 条
- 1
资源评论
- m0_561829842024-04-20资源不错,对我启发很大,获得了新的灵感,受益匪浅。
盈梓的博客
- 粉丝: 6978
- 资源: 1405
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- (单片机Proteus案例)Proteus单片机仿真实例之键盘系列
- (单片机Proteus案例)Proteus单片机仿真实例之电机系列
- (单片机Proteus案例)DS18B20温度传感器protues仿真,包括avr16128 ds18b20两种单片机型号
- (单片机Proteus案例)AT89S51单片机用Proteus仿真案例约12例,包括计数器、动态数码显示、定时计数器等
- (单片机Proteus案例)AT89S51单片机用Proteus仿真案例约10例,包括广告灯、按键、计数器等
- (单片机Proteus案例)51单片机点阵protues仿真实现
- 最新运营商归属地数据库
- 111111111111111111111
- 2024金地杯赛题及竞赛说明.zip
- 汉诺塔python代码递归
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功