我不明白行:results[i, sequence] = 1
在下面的代码中是如何工作的。你知道吗
我在Manning的一本书《用Python深入学习》(示例3.5-movie)中用一些示例代码跟随调试器-评论.ipynb虽然我理解了代码的功能,但我不知道它的语法和工作原理。我正在尝试将Python和deeplearning结合起来学习,并希望理解代码在做什么。你知道吗
def vectorize_sequences(sequences, dimension=10000):
# Create an all-zero matrix of shape (len(sequences), dimension)
results = np.zeros((len(sequences), dimension))
for i, sequence in enumerate(sequences):
results[i, sequence] = 1. # <--- How does this work?
return results
results
,一个25000x1000的零数组。你知道吗sequences
是元组列表,例如(3,0,5)。然后它遍历sequences
,对于每个序列的每个非零值,将results[i]
中相应的索引设置为1.0。他们称之为热编码。results[i, sequence] = 1
在numpy中完成此操作。for i, sequence in enumerate(sequences)
部分:只需枚举sequences
列表并跟踪i
。你知道吗sequence[n]
并在sequence[n]
非零时插入1.0(?)只是想了解语法。你知道吗
所以我要做一些假设,因为你们没有提供序列或维度的例子。我假设dimension是
sequences
中可能的最高值+1,sequences
中的每个值要么是一个整数,要么是一个tuple
整数。你知道吗这将遍历每个序列,并将
i'th
行中的所有值设置为1.0
,其中标记位于sequence
。你知道吗因此,通过这些输入:
对于第一个序列
(2, 3)
,它用1.0
替换数组中的第3和第4项对于第二个序列
(1, 2)
,它用1.0
替换数组中的第二和第三项在最后一个序列中,
4
用1.0
替换了第5项假设
sequence
是一个整数列表相当于
相关问题 更多 >
编程相关推荐