添加包含 -1 的列表并将其与整数相乘的目的是什么?

最近在看一篇深度学习论文相关的代码,repo在这里:https ://github.com/wuyifan18/DeepLog/blob/master/LogKeyModel_predict.py


这与python有更多的关系,所以我不会提及它。下面是我们需要解析的文件:


5 5 5 22 11 9 11 9 11 9 26 26 26 23 23 23 21 21 21 

5 5 22 5 11 9 11 9 11 9 26 26 26 

5 22 5 5 11 9 11 9 11 9 26 26 26 

5 22 5 5 11 9 11 9 11 9 26 26 26 

5 22 5 5 11 9 11 9 11 9 26 26 26 23 23 23 21 21 21 

22 5 5 5 11 9 11 9 11 9 26 26 26 23 23 23 21 21 21 

5 22 5 5 11 9 11 9 11 9 26 26 26 23 23 23 21 21 21 

5 5 5 22 11 9 11 9 11 9 26 26 26 2 23 23 23 21 21 21 

5 22 5 5 11 9 11 9 11 9 26 26 26

以下函数应该解析它。首先,我们取每一行,并制作一个列表,其中元素是该行中的数字,由空格分隔。然后我们在 line 处将所述数字减一###。接下来发生什么?


def generate(name):

    hdfs = set()

    # hdfs = []

    with open('data/' + name, 'r') as f:

        for ln in f.readlines():

            ln = list(map(lambda n: n - 1, map(int, ln.strip().split()))) ###

            ln = ln + [-1] * (window_size + 1 - len(ln))

            # print(ln)

            hdfs.add(tuple(ln))

    print('Number of sessions({}): {}'.format(name, len(hdfs)))

    return hdfs

我不确定确切的目的ln = ln + [-1] * (window_size + 1 - len(ln))是什么。它在做什么?我以前没有看到在很多地方使用过列表乘法,所以我不确定。当我尝试打印更多内容时,似乎-1根本不存在ln。有人有什么想法吗?


慕后森
浏览 123回答 2
2回答

猛跑小猪

在不深入研究代码的情况下,我们的想法是根据窗口使所有行的长度相同

慕勒3428872

如果您的窗口大小为 10,并且一行仅包含 5 个条目,您的列表将如下所示:[1, 2, 3, 4, 5, -1, -1, -1, -1, -1],这是处理静态大小的窗口。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python