学習済みモデルを使って画像表示や画像間補完をさせるための関数を定義します(表示は抜粋です)。セッションと変数を初期化します。生成する画像数の指定です。閾値(しきいち)の指定で、閾値を大きくすると多様性が大きくなる一方画質は落ちるというトレードオフの関係があるので、適当なところでバランスを取ります。同じであれば、毎回同じ乱数が同じ順序で発生するので、同じ画像を生成します。1000個のカテゴリーの中から何を画像生成するのかの指定です。デフォルトのチーズバーガーを画像生成してみました。高解像度でリアルです。なんか、急にお腹が減って来ました(笑)。画像Aから画像Bへのいわゆるモーフィング画像を生成します。モーフィングを何回やるかの指定。モーフィングを何枚の画像でやるかの指定。ゴールデンレトリバーから鶏へのモーフィングです。5枚からなるモーフィングを2回やっています。4枚目あたりは、かなり不気味な感じになりますね(笑)。デモを動かしている時に、こんな表示が出る時がありますが、迷わず「無視」を押せばOKです。いうサーバー上のディープラーニングマシンで動いていて、デモプログラムは各個人に割り当てられたメモリを目一杯使う設定になっているので、こんな警告が出るようです。うー、やっぱりBigだわ。1000カテゴリーの画像生成ができるのですが、具体的にどんなものがあるかザッと見てみたいですよね。いう形式で書かれているので、コードを簡単に追加できるんです。1000カテゴリーの画像を一覧で見るコードを追加してみます。ページ上部にある、赤丸の+コードをクリックします。すると、コードを入力するところが表示されます。ここに、コードを書き込んで、ボタンを押せば、この部分だけが追加で実行されます。+=1plt.show()1000カテゴリーの画像を1カテゴリー1枚で、10×10=100枚の単位で表示するコードです。これを先ほどのところにコピペします。はい、これでボタンを押せば、ここの部分が追加で実行されます。コードを実行すると、10×10の画像が10枚出力されます。これはその一部で100-199の生成画像です。前半は水辺にいる動物、後半は犬が多いようです。これで、画像はまとめて見れますが、カテゴリー名一覧も見たいですよね。先程、チーズバーガーを画像生成したここをダブルクリックします。すると左側にコードが現れます。Categoryの行には、登録カテゴリー名が全て記載してありますので、これを何処かにコピーして検索すれば、カテゴリー名からNo.を知ることが出来ます。画像ピックアップ私の独断と偏見で、どんな生成画像があるか、いくつかピックアップしてみます。1000カテゴリーの画像の中で最も数が多い動物は「犬」です。人類が初めて飼い始めた家畜が「犬」だそうで(猟犬として使っていたようです)、人気です。確かに、高解像度で完成度が高いです。家畜と言えば、猫も外せませんが、カテゴリー数はあまり多くありません。282トラ猫と260エジプト猫は、全く同じ姿勢なのですが、なぜでしょうか。ニワトリ、ペンギン、インド象、パンダ。779スクールバスは、猫バスのモーフィングを作る時に欠かせません(笑)。今までかなりの高解像度の画像生成でしたが、人物の画像生成はまだ不得意なようです。全体の雰囲気は出ているのですが、顔や手足の細部の表現が難しいようです。これも人が絡んでいますので画像生成はあまり上手くいっていません。445ビキニは安物のダッチワイフみたいですね(笑)。697パジャマは、1000カテゴリーの中で一番怖かったです。なんで顔がここまで不気味なんでしょうか。ファストフードがあるくらいで、あまり多くないです。850ティディベアは、動物をぬいぐるみ化する時に使いたいなと思っています(笑)。以上、ざっと見てきましたが、人間が絡む画像以外はかなりのクオリティで画像生成が行われているようです。(閾値)を変化させた時に、生成される画像がどう変化するか見てみましょう。このコードをチーズバーガーの画像生成したコードの一部に使います。下の行に先程のコードを上書きします。