0

I do not understand what this code is doing. X is a matrix which each row of it is an eigenvector of an image. What does the norm do?

   # Take an eigenvector and make it into an image
    def vecToImage(x, size = lfw_imageSize):
      im = x/np.linalg.norm(x)
      im = im*(256./np.max(im))
      im.resize(*size)
      return im
4

1 回答 1

1

文件对此事很清楚。您将 ord 参数的 None 传递给 linalg.norm() ,因此您获得了 Frobenius 范数。

该代码似乎通过除以范数来规范化输入。然后,似乎很难尝试缩放以具有 8 位颜色值。但是代码的范围是 0 到 256 而不是 0 到 255。

然而,第一步对我来说似乎毫无意义。代码可以简单地阅读:

im = x*(256./np.max(x))      

但也许应该是 255 而不是 256。

由于我们在这里没有上下文,我不愿意说代码是错误的。只有你可以决定,因为只有你知道上下文。

于 2013-05-26T21:07:38.303 回答