本站消息

站长简介/公众号


站长简介:逗比程序员,理工宅男,前每日优鲜python全栈开发工程师,利用周末时间开发出本站,欢迎关注我的微信公众号:程序员总部,程序员的家,探索程序员的人生之路!分享IT最新技术,关注行业最新动向,让你永不落伍。了解同行们的工资,生活工作中的酸甜苦辣,谋求程序员的最终出路!

  价值13000svip视频教程,python大神匠心打造,零基础python开发工程师视频教程全套,基础+进阶+项目实战,包含课件和源码

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

CNN嵌入层的实现

发布于2021-09-23 06:35     阅读(356)     评论(0)     点赞(27)     收藏(0)



嗨,我一直在尝试遵循以下两个示例:

1)如何用CNN、TensorFlow和词嵌入进行文本分类

2)如何在 Tensorflow RNN 中构建嵌入层?

但是,对于示例 1,我遇到了以下错误,

Input 0 of layer conv2d_1 is incompatible with the layer: expected ndim=4, found ndim=3. Full shape received: [None, 100, 20]

以及示例 2 的以下错误。

ValueError: Layer conv2d_1 expects 1 inputs, but it received 100 input tensors. Inputs received: [<tf.Tensor 'unstack:0' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:1' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:2' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:3' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:4' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:5' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:6' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:7' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:8' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:9' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:10' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:11' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:12' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:13' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:14' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:15' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:16' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:17' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:18' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:19' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:20' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:21' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:22' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:23' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:24' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:25' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:26' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:27' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:28' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:29' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:30' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:31' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:32' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:33' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:34' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:35' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:36' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:37' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:38' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:39' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:40' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:41' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:42' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:43' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:44' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:45' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:46' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:47' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:48' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:49' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:50' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:51' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:52' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:53' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:54' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:55' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:56' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:57' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:58' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:59' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:60' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:61' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:62' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:63' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:64' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:65' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:66' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:67' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:68' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:69' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:70' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:71' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:72' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:73' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:74' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:75' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:76' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:77' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:78' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:79' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:80' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:81' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:82' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:83' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:84' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:85' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:86' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:87' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:88' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:89' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:90' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:91' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:92' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:93' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:94' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:95' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:96' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:97' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:98' shape=(?, 20) dtype=float32>, <tf.Tensor 'unstack:99' shape=(?, 20) dtype=float32>]

我已更改代码而不是使用word_list = tf.unstack(word_vectors, axis=1)我已更改为以下实现来解决错误,但我不知道实现是否正确。

word_vectors = tf.contrib.layers.embed_sequence(
    x, vocab_size=n_words, embed_dim=EMBEDDING_SIZE)

word_list = tf.reshape( word_vectors, [-1, MAX_DOCUMENT_LENGTH, EMBEDDING_SIZE, 1])

conv1, pool1 = cnn(word_list, FILTER_SHAPE1, 'CNN_Layer1')

函数cnn和其他参数如定义

MAX_DOCUMENT_LENGTH = 100
N_FILTERS = 10
FILTER_SHAPE1 = [20, 20]
POOLING_WINDOW = 4
POOLING_STRIDE = 2
MAX_LABEL = 15
EMBEDDING_SIZE = 20

def cnn(x, filter_shape, name):
    with tf.variable_scope(name):
        conv1 = tf.layers.conv2d(
            x,
            filters=N_FILTERS,
            kernel_size=filter_shape,
            padding='VALID',
            activation=tf.nn.relu)
        pool1 = tf.layers.max_pooling2d(
            conv1,
            pool_size=POOLING_WINDOW,
            strides=POOLING_STRIDE,
            padding='SAME')

    return conv1, pool1

解决方案


暂无回答







所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接:https://www.pythonheidong.com/blog/article/1046144/f49db60482a242fd5a95/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

27 0
收藏该文
已收藏

评论内容:(最多支持255个字符)