小编Joh*_*owk的帖子

短字符串的压缩

我正在尝试压缩短字符串(最多 15 个字符)。

目标是实现“标准化压缩距离”[1],我在 python 中尝试了一些压缩算法(我还想看看是否可以在 Julia 中做到这一点,但包都拒绝安装)。我最终总是得到比我试图压缩的原始字符串更长的位字符串,这完全违背了目的。

zlib 的示例:

import zlib
data = b"this is a test"

compressed_data = zlib.compress(data, 9)
print(len(data))
print(len(compressed_data))
Run Code Online (Sandbox Code Playgroud)

返回:

13
21
Run Code Online (Sandbox Code Playgroud)

你现在知道我做错了什么,或者我怎样才能更有效地做到这一点?

[1]:https://arxiv.org/pdf/cs/0312044.pdf

python compression zlib julia

6
推荐指数
2
解决办法
2473
查看次数

LSTM 陷入循环

我最近实现了一个“从头开始”生成 RNN 的名称,它运行良好,但远非完美。所以我想在 pytorch 的 LSTM 类上碰碰运气,看看它是否有所作为。确实如此,并且前 7 到 8 个字符的输出看起来更好。但是随后网络陷入循环并输出诸如“laulaulaulau”或“rourourourou”之类的东西(应该是生成法语名称)。

这是一个经常发生的问题吗?如果是这样,您知道解决方法吗?我担心网络不产生 EOS 令牌的事实......这是一个已经在这里问过的问题为什么我的 keras LSTM 模型陷入无限循环? 但没有真正回答所以我的帖子。

这是模型:

class pytorchLSTM(nn.Module):
    def __init__(self,input_size,hidden_size):
        super(pytorchLSTM,self).__init__()
        self.input_size = input_size
        self.hidden_size = hidden_size
        self.lstm = nn.LSTM(input_size, hidden_size)
        self.output_layer = nn.Linear(hidden_size,input_size)
        self.tanh = nn.Tanh()
        self.softmax = nn.LogSoftmax(dim = 2)

    def forward(self, input, hidden)
            out, hidden = self.lstm(input,hidden)
            out = self.tanh(out)
            out = self.output_layer(out)
            out = self.softmax(out)
        return out, hidden
Run Code Online (Sandbox Code Playgroud)

输入和目标分别是两个单热编码向量序列,在开始和结束处分别有序列的开始和序列的结束向量。它们代表取自姓名列表(数据库)的姓名中的字符。我在数据库中的每个名称上使用 和 标记。这是我使用的功能

def inputTensor(line):
#tensor starts with <start of sequence> token.
    tensor = …
Run Code Online (Sandbox Code Playgroud)

neural-network python-3.x lstm pytorch

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

标签 统计

compression ×1

julia ×1

lstm ×1

neural-network ×1

python ×1

python-3.x ×1

pytorch ×1

zlib ×1