tensorflow - tf.keras.layers.Conv1D 是否支持 RaggedTensor 输入?
问题描述
在 tensorflow conv1D 层文档中,它说;
'当将此层用作模型中的第一层时,提供一个 input_shape 参数(整数元组或无,例如 (10, 128) 用于 128 维向量的 10 个向量的序列,或 (None, 128) 用于可变 - 128 维向量的长度序列。
所以我知道我们可以输入可变长度序列,但是当我为 conv1D 层使用不规则张量输入时,它给了我一个错误:
ValueError:层 conv1d 不支持将 RaggedTensors 作为输入。
如果不是 RaggedTensors,可变长度序列的真正含义是什么?
谢谢,
解决方案
在这里为社区提供答案,即使答案已经出现在评论部分。
tf.keras.layers.Conv1D
不支持不规则张量,您可以使用填充序列tf.keras.preprocessing.sequence.pad_sequences
并将其用作 Conv1D 层的输入。
这是 pad_sequenes 的示例。
sequence = [[1], [2, 3], [4, 5, 6]]
tf.keras.preprocessing.sequence.pad_sequences(sequence)
数组([[0, 0, 1],[0, 2, 3],[4, 5, 6]], dtype=int32)
您还可以执行固定长度的填充、更改填充值和后填充,如下所示:
sequence = [[1], [2, 3], [4, 5, 6]]
tf.keras.preprocessing.sequence.pad_sequences(sequence,maxlen=2,value=-1,padding="post")
数组([[ 1, -1],[ 2, 3],[ 5, 6]], dtype=int32)
推荐阅读
- android-studio - 如何在 Android Studio 3.4 中使用 Run Anything
- kubernetes - CSINodeDriver 无效对象没有附加属性
- css - 检查 CSS 属性选择器值是否匹配,而不对实际值进行硬编码
- ios - 如何打开带有选定单元格标题的导航控制器
- javascript - JavaScript 中 Object.defineProperty() 的奇怪行为
- mysql - 更新语句可以使用插入意图锁吗?
- php - CakePHP 2 使用 JOIN 查找方法的问题
- ruby-on-rails - 无法在 rails 应用程序中将图像托管配置为 aws s3
- powershell - 使用 rest api 创建项目后,将用户作为管理员分配给项目 - Azure DevOps
- google-cloud-firestore - 突然我没有在firebase控制台功能日志上获得日志