资源简介
深度学习TextCNN的keras和tensorflow实现,精简版。。。。
代码片段和文件信息
import tensorflow as tf
import numpy as np
import os
import random
class CNN_Config(object):
“““CNN配置参数“““
ckpt_dir = ‘‘ #模型存放路径
validate_every = 1 #几轮计算一次指标
embedding_dim = 64 # 词向量维度
seq_length = 600 # 序列长度
num_classes = 10 # 类别数
kernel_size = 5 # 卷积核尺寸
vocab_size = 5000 # 词汇表达小
filter_sizes = [23456] #卷积和大小
num_filters = 128 # 卷积核数目
num_filters_total = num_filters * len(filter_sizes)
hidden_dim = 128 # 全连接层神经元
dropout_keep_prob = 0.5 # dropout保留比例
learning_rate = 1e-3 # 学习率
batch_size = 64 # 每批训练大小
num_epochs = 10 # 总迭代轮次
print_per_batch = 100 # 每多少轮输出一次结果
save_per_batch = 10 # 每多少轮存入tensorboard
initializer=tf.random_normal_initializer(stddev=0.1) #权值初始化
l2_lambda = 0.0001 #L2正则参数
decay_steps = 1000 #学习率衰减次数
decay_rate = 0.1 #学习率衰减率
clip_gradients=5.0 #学习率裁剪
decay_rate_big=0.50 #学习率最大衰减率
def init_label_dict(num_classes):
“““
init label dict. this dict will be used to save TPFPFN
:param num_classes:
:return: label_dict: a dict. {label_index:(000)}
“““
label_dict={}
for i in range(num_classes):
label_dict[i]=(000)
return label_dict
def get_label_using_logits(logitstop_number=5):
index_list=np.argsort(logits)[-top_number:]
index_list=index_list[::-1]
return index_list
def get_target_label_short(eval_y):
eval_y_short=[] #will be like:[226421391]
for indexlabel in enumerate(eval_y):
if label>0:
eval_y_short.append(index)
return eval_y_short
def compute_confuse_matrix(target_ypredict_ylabel_dictname=‘default‘):
“““
compute true postive(TP) false postive(FP) false negative(FN) given target lable and predict label
:param target_y:
:param predict_y:
:param label_dict {label:(TPFPFN)}
:return: macro_f1(a scalar)micro_f1(a scalar)
“““
#1.get target label and predict label
if random.choice([x for x in range(300)]) == 1:
print(name+“.target_y:“target_y“;predict_y:“predict_y)
#2.count number of TPFPFN for each class
y_labels_unique=[]
y_labels_unique.extend(target_y)
y_labels_unique.extend(predict_y)
y_labels_unique=list(set(y_labels_unique))
for ilabel in enumerate(y_labels_unique): #e.g. label=2
TP FP FN = label_dict[label]
if label in predict_y and label in target_y:#predict=1truth=1 (TP)
TP=TP+1
elif label in predict_y and label not in target_y:#predict=1truth=0(FP)
FP=FP+1
elif label not in predict_y and label in target_y:#predict=0truth=1(FN)
FN=FN+1
label_dict[label] = (TP FP FN)
return label_dict
def compute_micro_macro(label_dict):
“““
compute f1 of micro and macro
:param label_dict:
:return: f1_microf1_macro: scalar scalar
“““
f1_micro =
- 上一篇:传智python基础+就业 100G视频18年最新
- 下一篇:卷积神经网络源码
相关资源
- Deep Learning Cookbook_ practical recipes to g
- 深度学习视频中的行为识别
- deep learning with python 中文版
- 吴恩达深度学习超参数调制完整程序
- 深度学习入门 基于python理论与实现
- Python-基于tensorflow实现的用textcnn方法
- Python-基于深度学习的语音增强使用
- 《深度学习Deep Learning with Python 2017》
- 深度学习进阶:自然语言处理
- 基于深度学习堆栈自动编码器模型的
- 深度学习入门:基于python的理论与实
- 吴恩达深度学习1-21-31-42-1编程作业线
- 基于Python的深度学习
- 安全帽检测detect.7z
- deep_learning_with_python.pdf(Jason Brownlee)
- 人脸识别python代码187268
- Make Your Own Neural Network - 搭建自己的神
- BrownLee Better Deep Learning
- python 直方图规定化代码
- 简单粗暴 TensorFlow
- 5. 深度学习中的目标检测 python代码实
- 深度学习入门:基于Python的理论与实
- Deep Learning from Scratch中文名:深度学习
- Deep Learning for Natural Language Processing.
- 字符型图片数字验证码识别完整过程
- Python深度学习122512
- 基于Tensorflow的人脸识别源码
- 中文情感分析python程序
- 基于深度学习Superpoint 的Python图像全景
- 《深度学习入门:基于Python的理论与
评论
共有 条评论