背景介绍
本文内容是使用CNN进行文本分类,主要记录文本分类问题中使用tensorflow进行神经网络构建的内容。此篇承接上一篇的NLP-使用tensorflow构建神经网络——嵌入层细节部分说明。
目录
一、CNN模型图
图片来源:论文Convolutional Neural Networks for Sentence Classification
二、卷积和池化代码
# Create a convolution + maxpool layer for each filter size
pooled_outputs = []#初始化空的list
for i, filter_size in enumerate(filter_sizes):#遍历卷积核种类,size=2、size=3、、、
with tf.name_scope("conv-maxpool-%s" % filter_size):
#建立一个名称为’conv-maxpool-‘的模块
# Convolution Layer
filter_shape = [filter_size, embedding_size, 1, num_filters]
#卷积核参数:高*宽*通道*卷积核个数,图片中最左侧所示
W = tf.Variable(tf.truncated_normal(filter_shape, stddev=0.1), name="W")
# W表示截断产生正态分布数据,方差为0.1,变量维度为filter_shape的张量
b = tf.Variable(tf.constant(0.1, shape=[num_filters]), name="b")
# b表示变量维度为卷积核个数,数值为0.1的张量
conv = tf.nn.conv2d(#实现卷积
self.embedded_chars_expanded,
W,
strides=[1, 1, 1,

本文详述使用TensorFlow构建神经网络的CNN模型,重点讲解卷积层(tf.nn.conv2d)和池化层(tf.nn.max_pool)的实现及细节,包括tf.truncated_normal、tf.concat和tf.reshape的用法,以及ReLU激活函数的作用和优化神经网络的方法。
最低0.47元/天 解锁文章
3234

被折叠的 条评论
为什么被折叠?



