标签: zero-padding

Keras 嵌入层:将零填充值保持为零

我一直在考虑单词序列的 0-padding 以及如何将 0-padding 转换为 Embedding 层。乍一看,人们会认为您还想保持 embeddings = 0.0。但是,Embeddinglayer in 会keras为任何输入标记生成随机值,并且无法强制它生成 0.0。注意,mask_zero做一些不同的事情,我已经检查过了。

有人可能会问,为什么要担心这一点,即使嵌入不是 0.0,只要它们相同,代码似乎也能工作。所以我想出了一个例子,尽管有点做作,其中将 0 填充标记的嵌入设置为 0.0 会有所不同。

我使用了 20 News Groups 数据集from sklearn.datasets import fetch_20newsgroups。我做了一些最小的预处理:删除标点符号、停用词和数字。我from keras.preprocessing.sequence import pad_sequences用于 0-padding。我将大约 18K 个帖子分成训练和验证集,训练/验证的比例 = 4/1。我创建了一个简单的 1 个密集隐藏层网络,输入是扁平化的嵌入序列:

    EMBEDDING_DIM = 300
    MAX_SEQUENCE_LENGTH = 1100
    layer_size = 25
    dropout = 0.3
    sequence_input = Input(shape=(MAX_SEQUENCE_LENGTH,), dtype='int32', name='dnn_input')
    embedding_layer = Embedding(len(word_index) + 1, EMBEDDING_DIM, input_length=MAX_SEQUENCE_LENGTH, name = 'embedding_dnn')
    embedded_sequences = embedding_layer(sequence_input)
    x = Flatten(name='flatten_dnn')(embedded_sequences) …
Run Code Online (Sandbox Code Playgroud)

machine-learning text-classification keras word-embedding zero-padding

5
推荐指数
1
解决办法
1011
查看次数

在文件的每一行前面添加前导零

我有一个如下所示的文件:

1:line1
14:line2
135:line3
15:line4
Run Code Online (Sandbox Code Playgroud)

我需要在每行前面添加前导零,使其看起来像这样:

00001:line1
00014:line2
00135:line3
00015:line4
Run Code Online (Sandbox Code Playgroud)

在 Linux 中是否有一种简单的方法可以做到这一点?

我尝试过使用

awk '{printf "%05d:%s\n", FNR, $0}' file
Run Code Online (Sandbox Code Playgroud)

但这输出:

00001:1:line1
00002:14:line2
00003:135:line3
00004:15:line4
Run Code Online (Sandbox Code Playgroud)

我应该注意我没有写这个命令,我从谷歌那里得到它并且并不真正理解它是如何工作的

string awk numeric zero-padding

5
推荐指数
1
解决办法
263
查看次数

在 Tensorflow 中具有相同填充的均匀大小的内核

在 Tensorflow 中,SAME 填充旨在通过在输入中适当填充零来产生与输入相同大小的输出,给定步长 = 1。对于奇数大小的内核,例如 5x5,它将内核 (2,2) 的中心放在输入 (0,0) 的第一个像素上并开始卷积。在 x 和 y 坐标中,都需要 2 个像素的零填充。

如果使用偶数内核,例如 6x6,会怎样?它不会将像素的中心作为其实际中心。VALID padding 如何处理这个问题?例如,根据具有偶数大小内核图像卷积,一般图像处理文献中的约定是在零之前再放置一个像素,就像-3 -2 -1 0 1 2在这种情况下一样。填充区域将命中三个像素。我为此参考了 Tensorflow 文档,但找不到明确的答案。

python conv-neural-network tensorflow zero-padding

4
推荐指数
1
解决办法
1977
查看次数

keras.layers.Conv2D 的默认内核大小、零填充和步幅是多少?

Conv2D (keras.layers.Conv2D) 中的默认内核大小、零填充和步幅参数是什么?如果不指定这些参数会发生什么?

deep-learning conv-neural-network keras tensorflow zero-padding

4
推荐指数
1
解决办法
5118
查看次数

带有 padding='SAME' 的 Tensorflow/Keras Conv2D 层表现奇怪

我的问题:

我进行的一个简单的实验表明,在 Keras/TF 中的 conv2d 层中使用与在前面的零填充层中padding='SAME'使用不同。padding='VALID'

  1. 这怎么可能?
  2. Keras/TF 是否在张量周围对称地填充零?

实验说明 - 如果您有兴趣进一步阅读:

我使用该onnx2keras包将我的 Pytorch 模型转换为 keras/TF。

onnx2keras遇到 ONNX 模型中的卷积层时,它会将其转换为带填充的padding > 0Keras 层(即无填充!),前面是 Keras层。这非常有效,并且返回与 Pytorch 网络产生的输出相同的输出。Conv2DvalidZeroPadding2D

我仍然觉得奇怪的是它不简单地使用padding='SAME',因为大多数参考文献都说 Keras/TF 使用零填充,就像 Pytorch 一样。

尽管如此,我还是onnx2keras对其进行了修补并使其生成Conv2D层,padding='SAME'而不是'VALID'使用前面的零填充层进行填充的现有解决方案。这使得生成的模型返回的输出与具有零填充层的输出不同,当然也不同于我的 Pytorch 模型,在补丁之前它是相同的。

conv-neural-network keras tensorflow zero-padding

4
推荐指数
1
解决办法
3686
查看次数

带有数字填充的 CSS 计数器

是否可以counter根据其值填充数字?

div {
  counter-reset: ruler;
}

div > span {
  display: block;
  line-height: 1rem;
}

div > span::before {
  counter-increment: ruler;
  content: counter( ruler ) ' ';
}
Run Code Online (Sandbox Code Playgroud)
<div>
  <span>Hello, World!</span>
  <span>Hello, World!</span>
  <span>Hello, World!</span>
  <span>Hello, World!</span>
  <span>Hello, World!</span>
  <span>Hello, World!</span>
  <span>Hello, World!</span>
  <span>Hello, World!</span>
  <span>Hello, World!</span>
  <span>Hello, World!</span>
  <span>Hello, World!</span>
  <span>Hello, World!</span>
  <span>Hello, World!</span>
</div>
Run Code Online (Sandbox Code Playgroud)

就像如果有 42 行,数字将像09 9、 420 —009  9

html javascript css css-counter zero-padding

3
推荐指数
1
解决办法
1296
查看次数

如何用 JQ 填充数字?

我想从数字向字符串添加前导/尾随零 - 结果字符串需要包含“01”或“001”而不是“1”。我注意到了项目,https://github.com/joelpurra/jq-zeros但我从包管理器(dnf、fedora)安装了 jq,所以一些要求jqnpm对我来说是不可行的(乍一看),更不用说我对 npm 的恐惧,因为这些东西sudo npm -g已经多次破坏了我的系统。

题:

  1. jq 的这些包管理器,它们是否正在被主流接受?
  2. 填充本身——没有这个额外的库怎么办?

json jq zero-padding

2
推荐指数
3
解决办法
568
查看次数

在文件段中写入零

我用来fwrite写一个文件(它是一个图像)。

首先,我正在编写一个具有固定大小的标题

int num_meta_write_bytes = fwrite(headerBuffer, 1, headerSize, file);
Run Code Online (Sandbox Code Playgroud)

这工作正常

然后我必须写像素:

num_write_bytes = fwrite(data_pointer, 1, image_size, file);
Run Code Online (Sandbox Code Playgroud)

这工作正常

对于我的情况,我必须在标题和像素之间写入可变数量的零,我发现的(丑陋的?)解决方案是:

for (size_t i = 0; i < padding_zeros; i++) //padding_zeros is calculated in runtime
{
    uint8_t zero = 0;
    num_meta_write_bytes += fwrite(&zero, 1, sizeof(uint8_t), fp);
}
Run Code Online (Sandbox Code Playgroud)

(此代码放置在写入像素之前)

我的问题是:有没有办法直接告诉fwrite连续写入相同的值padding_zeros次数?而不是使用这个for循环?

c fwrite zero-padding

2
推荐指数
1
解决办法
345
查看次数

如果系统执行零填充文件的一部分,会发生什么?

我在一些帖子/视频/文件中看到它们是零填充的,看起来比它们更大,或者匹配一些文件系统实用程序用于移动文件的"相同文件大小"标准,大多数它们是恶作剧程序或恶意软件.

但我经常想知道,如果文件损坏会发生什么,并且会"加载"文件末尾的大零填充空间中的下一组"指令"?

会发生什么事吗?什么是指令集0x0

assembly file machine-language zero-padding

1
推荐指数
1
解决办法
68
查看次数