问题标签 [zero-padding]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python-3.x - 转向卷积层的零填充输入问题
我正在使用 Tensorflow 的新图形库将转向卷积应用于一系列网格。在许多情况下,您将拥有一系列大小不同的网格,您必须对较小的网格进行零填充。根据文档,graph_conv.feature_steered_convolution_layer 函数的“大小”参数采用一个 int 张量,该张量由每个网格的非填充元素的数量组成。出于某种原因,当此参数设置为“无”以外的其他值时,我收到一条警告,告诉我“邻居”参数中使用的稀疏数组正在转换为密集矩阵。这导致我的程序运行缓慢。
这个问题似乎与它计算梯度的方式有关。如果优化器被注释掉,错误就不会出现。
我读到了一个类似的问题(下面的链接),该问题的解决方案是使用 tf.dynamic_partition 而不是 tf.gather。但是,在这种情况下,tf.gather 函数位于 graph_convolution 库中。我试图在我的图书馆副本中进行一些编辑,但无济于事。
如何处理 UserWarning:将稀疏的 IndexedSlices 转换为形状未知的密集 Tensor
运行上述代码时,我收到以下警告:
我开始认为这可能与库本身有关,而不是与这段代码有关。我在 GitHub 中引用了这个,以防它需要对库进行更新(或附加文档)。 https://github.com/tensorflow/graphics/issues/13
machine-learning - Keras嵌入层:将零填充值保持为零
我一直在考虑单词序列的 0-padding 以及如何将 0-padding 转换为 Embedding 层。乍一看,人们会认为您也想保持嵌入 = 0.0。但是,Embedding
layer in 会keras
为任何输入标记生成随机值,并且没有办法强制它生成 0.0。注意,mask_zero
做一些不同的事情,我已经检查过了。
有人可能会问,为什么要担心这一点,即使嵌入不是 0.0,只要它们相同,代码似乎也能正常工作。所以我想出了一个例子,虽然有点做作,将嵌入设置为 0.0 的填充标记为 0 会有所不同。
我使用了 20 个新闻组数据集from sklearn.datasets import fetch_20newsgroups
。我做了一些最小的预处理:删除标点符号、停用词和数字。我from keras.preprocessing.sequence import pad_sequences
用于 0 填充。我将大约 18K 的帖子分成训练和验证集,训练/验证的比例 = 4/1。我创建了一个简单的 1 密集隐藏层网络,输入是嵌入的扁平序列:
该模型有大约 14M 的可训练参数(这个例子有点做作,正如我已经提到的)。当我训练它
看起来算法在 4 个时期都在努力寻找摆脱“随机性”的方法:
最终精度约为 0.87
但是,当我将填充的 0 的嵌入显式设置为 0.0
具有相同数量参数的模型会立即摆脱“随机性”:
最终获得更好的精度,约为 0.9。
同样,这是一个有些人为的例子,但它仍然表明将那些“填充”嵌入保持在 0.0 可能是有益的。
我在这里错过了什么吗?如果我没有遗漏任何东西,那么 Keras 不提供开箱即用功能的原因是什么?
更新
@DanielMöller 我试过你的建议:
不幸的是,网络陷入了“随机性”:
我也尝试过没有NonNeg()
约束,结果相同。
python - 零填充没有 numpy 的图像
我是 Python 的初学者,我正在学习如何处理图像。
给定一个正方形图像(NxN),我想把它变成一个(N+2)x(N+2)图像,周围有一个新的零层。我宁愿不使用 numpy,只坚持基本的 python 编程。关于如何做到这一点的任何想法?
现在,我使用 .extend 在右侧和底部添加零,但不能向上和向左添加。
谢谢您的帮助!
python - 在两个维度上将零填充到张量
我有一个张量 t
我想成功
我尝试用 new=torch.tensor([0. 0. 0. 0.]) 张量堆叠四次,但没有奏效。
我也试过猫,那也没用。
keras - 在每个批量大小中使用自定义填充训练 LSTM
我正在训练用于文本分类的 RNN。我想用批量大小训练模型X
。但是,对于每个批次,我想创建一个零填充 where word_padding_length = maximum string length in each batch - current_word_length
。我尝试过搜索,但找不到与此相关的任何内容。这应该在我拟合模型时发生。
c - 零填充字符串到有限长度
我想向字符串添加零填充以使字符串具有特定的最终长度。在我的具体情况下,我希望字符串末尾的长度为 6,并在之前用 0 填充。
我在 C# 中看到了很多答案,而在 C 中没有看到很多答案,我确实看到的答案在 int 或 char 的开头添加了一定长度的填充,但我想要的是添加一个填充以得到最终结果长度为 6。
如果这是一个重复的问题,我真的很感激一个链接。
python - 如何将数据框中的序列拟合到多类问题?| 喀拉斯 | 熊猫 | ValueError:使用序列设置数组元素
我正在尝试构建一个具有序列到类用例的神经网络。我有一个包含 7 列的数据框:
- 前 6 列是输入,第 7 列是输出。
ID
并且x3
是数据集需要分组和聚合的属性。x3
每个总是有一个ID
。一个ID
可以有i
行。- 列
x1
和x2
用字符串填充。timestamp
列是日期。
target_maturity
是需要预测的目标值。
首先,我使用 LabelEncoder 对目标值进行编码:
接下来我将 x1/x2 中的字符串操作为数字序列:
由于我试图预测每个 ID 的一个目标值,并且由于一个项目对于一个 ID 是相同的,因此我将数据分组如下:
定义输出类的数量:
一种热编码输出:
从作为输入的数据创建一个数组:
训练测试拆分:
适合型号:
毕竟,我收到了错误。我也尝试将输入数据中的每个元素作为数组进行操作,但是如果x_train
没有收到错误,我就无法进行事件操作。
如何将充满字符串的数据框中的序列拟合到多类问题?使用 keras 将序列转换为矩阵会弄乱数据帧。在阅读使用 keras 时出现相同错误的每篇文章后,我完全不知道如何解决这个问题。
遵循@DanielMöller 的建议,就我而言:
在标记序列之前:
一 - 热编码:
标记序列后:
Zero_pad x1 和 x2:
按 ID 和 x3_encoded 分组:
Zero_pad 列表列表:
多输入处理:
嵌入:
在:
出[57]:
在:
出[58]:
使用 LSTM 减少序列长度:
timeStampEncoded = LSTM(118)(timeStampInput) Traceback(最近一次调用最后一次):文件“C:\Users\reszi\Anaconda3\envs\deeplearning\lib\site-packages\IPython\core\interactiveshell.py”,第 3296 行,在 run_code exec(code_obj, self.user_global_ns, self.user_ns) 文件“”,第 1 行,在 <模块> timeStampEncoded = LSTM(118)(timeStampInput) 文件“C:\Users\reszi\Anaconda3\envs\deeplearning\lib \site-packages\keras\layers\recurrent.py",第 532 行,调用 返回 super(RNN, self)。调用(输入,**kwargs)文件“C:\Users\reszi\Anaconda3\envs\deeplearning\lib\site-packages\keras\engine\base_layer.py”,第 414 行,调用中 self.assert_input_compatibility(inputs) 文件“C:\Users\reszi\Anaconda3\envs\deeplearning\lib\site-packages\keras\engine\base_layer.py”,第 311 行,在 assert_input_compatibility str(K.ndim(x)) )
ValueError: Input 0 is in compatible layer lstm_1: expected = 3, found ndim = 2
list - Haskell:合并一个列表,其中偶数索引来自列表 1,奇数索引来自列表 2。如果大小不同,则填充 0
我试图创建一个 Haskell 函数,它将 2 个列表合并到一个列表中,其中新列表中的偶数索引来自列表 1,奇数索引来自列表 2。如果大小不同,则填充 0。
例如:
我试图创建几个版本,但没有运气。
我怎么能创造这样的东西?
c - 在 printf 语句的开头填充零 C
我需要为某些值添加 0。
例如,如果数字是 14,我想打印出 00014。
但我不能只使用 %05d 因为我想要的填充数存储在一个变量中。
如果变量等于 6,我想打印 000014。如果它等于 3,我想打印 014,依此类推..
有什么快速的方法吗?
这也行不通。
谢谢你。
javascript - 带有数字填充的 CSS 计数器
counter
是否可以根据其值填充数字?
就像如果有 42 行,数字会像09
or 9
, 420 — 009
or 9
。