0

このコードが何をしているのかわかりません。X は、各行が画像の固有ベクトルである行列です。規範は何をしますか?

   # 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 ~ 255 ではなく、0 ~ 256 の範囲にスケーリングされます。

しかし、最初のステップは私には無意味に思えます。コードは単純に次のようになります。

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

しかし、おそらく 256 ではなく 255 であるべきです。

ここではコンテキストがないため、コードが間違っているとは言いたくありません。あなただけがコンテキストを知っているので、あなただけがそれを決定する立場にあります。

于 2013-05-26T21:07:38.303 に答える