終了時の変数での生成結果を画像として出力するようにする。CPU環境ではそれなりに時間がかかって厳しい。stepくらいは完了するようだ。ある程度学習したモデルを使用。実際にこのモデルによって生成された画像。これは既に自らが生成した実績がある画像なので、再現できないとおかしいくらいのものではある。意外と「完全に一致」というところまではいかない...。早い段階からほぼ再現できているようには見える。パラメータ次第という感じではあった。女優さんの顔画像とかだとどうなるだろうか。しないけど、一応それなりに髪や顔のパーツまで生成できているようだ。学習データに使っていない画像も生成できるようになる、というのは面白いな〜。学習も完了ってほど十分に出来ていないのだけど、それでもこれだけ生成できる、ということが分かった。データを増やして学習させたモデルを使った場合にはまた違う結果になるかもしれない。morphingが出来る...はず。中間の表現は気持ち悪いばかりのものになってしまった。これくらい離れた空間同士だと単純な線形の推移では自然な変化を出せないようだ。このあたりも学習の進行度合いによって違ったりするかもしれないけど...。学習もまだ完了とは言えない状態なのだけど、なんとなくそれっぽい顔画像は生成できるくらいまでは出来てきているので、それを使った実験をしてみている。2020主にこの記事を参考にしています。latents_inを使ったもの。任意の入力を受けて画像を生成するようになっている。ここの値をうまく選ぶことで所望の出力を得られるようになったりする、というわけだ。作ってそれを入力すると、2つの異なる画像が出力される。生成される画像も2つの画像の中間のものになるだろう、という考え方。刻みで線形に変化させてそれぞれ画像を生成した結果。右端と左端は(一応)違う顔だが、その間で徐々に変化していっているのが分かる、と思う。GIFアニメーションにするとこんな感じ。次元の大きい変数に変換される。変化したりする、のかな。入力に使われ、実際の画像の合成が行われる、ということになる。画像生成のための入力としてはより直接的なものになるのかもしれない。作用している、という感じか。質の良い出力を得ることが出来る値にするための工夫がされているようだ。変化させた方が自然なものになりそう。入出力を扱えるようにした。刻みで線形に変化させるようにする。変化だと途中で顎のあたりに手のようなものが現れたりガチャガチャと忙しい変化になってしまっていたのに対し、今度はシームレスに2画像間を推移するようになった。汚い出力になってしまう。学習データにまったく存在していない画像も生成することが出来る可能性があるようだ。これについてはまたこれから実験していきたい。しても印象が似たような顔ばかりになりやすい。間の距離を計算してみる。出来たような気がする。この感覚はまぁ合ってそうだ。JavaScriptmemo.sugyan.comの続き。TensorFlow.jsを使ってブラウザ上で動かせるようになったので、そのためにやったことメモ。2020(まだまだ画像の質とかパフォーマンスの問題とかは色々ある)CPU環境で動かす最終的にはTensorFlow.jsでブラウザ上で動かすことが目標だったので別にCPUで動かせる必要は無かったのだけど、どうもGPU環境でしか動かない特殊なOpなどもあってそれが変換後のモデルで実行時にエラーを引き起こす原因だったりするため、まずはCPU環境でも安定して動くようにするのが確実なようだ。ファイルは、CPU環境では読み込むことも出来ない。foundそりゃCUDAが入っていない環境ではこうなる。強制してしまうのがラク。方が使われるようになる。読み込むのは問題なくできるようになる。ここから実際に計算を実行しようとすると問題が起きるわけで。Gs/G_synthesis/8x8/Conv0_up/conv2d_transpose}}]]...StyleGAN2のモデルはGPU環境で学習する前提で作られているので、その環境に最適化された処理が幾つかある。formatを使っていること。対応していないので計算を実行することが出来ないようだ。Graphを書き換えるということで困った、という記事を書いたところ、以下のようなフィードバックをいただいた。変換する方法があるのか...!ということで上記を参考にしながら自分で書いてみた。これらが書き換える対象となる。shapeを変換していく。この2つのtypeに対してそれぞれ対応するだけで良い、ということになる。番目に入力のTensorが入ってくる。変換することが出来る。formatに依存しないのでこのまま使えば良い。いう順番で来るらしい。Tensorが入ってくる。その後の出力の型が合わなくなってしまう。中身の順番を入れ替える。attributes。いうものを持っているようで、これも書き換えてやる必要がある。ときで扱いが変わるものらしい。順に並び換えたものを用意する。