tensorflow2.0 - 句子分类:为什么我的embedding没有减少后续层的形状?
问题描述
我想嵌入所有包含 5 个单词的句子,而我的训练集的总词汇量为 10000 个单词。我使用这段代码:
import tensorflow as tf
vocab_size = 10000
inputs = tf.keras.layers.Input(shape=(5,vocab_size), name="input", )
embedding = tf.keras.layers.Embedding(10000, 64)(inputs)
conv2d_1 = Conv2D( filters = 32, kernel_size = (3,3),
strides =(1), padding = 'SAME',)(embedding)
model = tf.keras.models.Model(inputs=inputs, outputs=conv2d_1)
model.summary()
运行后我得到:
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
input (InputLayer) [(None, 5, 10000)] 0
_________________________________________________________________
embedding_105 (Embedding) (None, 5, 10000, 64) 640000
_________________________________________________________________
conv2d_102 (Conv2D) (None, 5, 10000, 32) 18464
=================================================================
我想做嵌入将稀疏的 10000x5 张量转换为密集的 64x5 张量。显然这不能按预期工作,所以我的问题是:为什么下一层的形状不是(None, 5, 64, 32)
而不是 (None, 5, 10000, 32)
?如何实现压缩?
解决方案
推荐阅读
- android - 如何在flutter中使用google calendar watch api方法?
- kotlin - Spring Cloud Stream Reactive - 处理消息异常
- sql - 为什么 Oracle 中的嵌套聚合函数需要 GROUP BY
- node.js - 使用 ws 发送自定义事件
- clickjacking - 有没有办法阻止通过移动应用程序的 webView 查看我的网站?
- python - 下载了一个jupyter笔记本,但它不会打开
- javascript - 在另一个 API 调用之前清除 api 响应数组
- c++ - 使用无序映射返回向量中元素摘要的最佳方法是什么?
- python - 在 python 中使用 selenium 跳过空文本节点
- java - 更改下载文件中的作者日期