‫よしっ｡
‫さて､ これで画像を前処理して時制に変換する機能ができました｡
‫これで､ 次に何をすべきかが見えてきました｡
‫だから､ データを用意して､ 時制に変えていくんだ｡
‫機種を選ぶ｡
‫うーん｡
‫まあ､ この程度ならまだしも｡
‫では､ また戻ってきたら､ TensorFlowでの画像学習についてもう少し読み解いていきたいと思います｡
‫TensorFlowは､ データバッチという形で物事を見るのが好きなのだと把握する｡ k. は､ 画像やデータの例を含むテンソルである｡
‫これはデータに依存しないことを忘れないでください｡
‫ここでは､ あくまでイメージを例に挙げています｡
‫だから､ データの一部を渡すと､ それが結合テンソルとしてラベル付けされ､ 高速に処理できる､ という形が好きなんです｡
‫また､ バッチとは何かというと､ ミニバッチとも呼ばれ､ データの小さな部分をまとめたものです｡
‫さて､ 一般的に､ 良いバッチサイズとは何か､ どのくらいが小さい部分なのかというと､ 一般的に､ ほとんどのディープラーニングモデルでは32がデフォルトのバッチサイズです｡
‫そして､ 私はこうしていろいろなことを解明していることをお見せします｡
‫ということで､ ヤン・リークンのバッチサイズにしました｡ ヤン・リークンって誰？
‫バッチサイズとは何ですか？
‫これらはすべて､ 私にとって初めての経験です｡
‫さて､ 機械学習やディープラーニングの分野で活躍する人物を見つけたり､ 聞いたりしたときに､ ちょっとしたコツを紹介したいと思うんです｡
‫彼らがあるトピックについてどう考えているかを知るために私が使っているAIトリックは､ 彼らの名前をグーグルで検索し､ 私が探しているコンセプトをグーグルで検索することです｡
‫もう一人はジェレミー・ハワードです｡
‫John LarkinとJeremy Howardは､ Jeremy
‫Howard batch size Googleで調べてみてください｡
‫しかし､ 我々はヤンLiqunバッチサイズをグーグル場合は､ ここで脱線している｡
‫そして､ 物事を理解するための素晴らしいリソースであるTwitterにたどり着いたのです｡
‫ほら､ この大きなミニバッチを使ったトレーニングは､ 健康に悪いですよ｡
‫もっと言えば､ テストエラーになるのもまずい｡
‫友達は32より大きいミニバッチを使わせない｡
‫それから､ バッチサイズの違いについては､ こちらの論文にリンクが張られています｡
‫だから､ それを調べてもらう｡
‫このツイートは資料編にリンクしておきますので､ その論文をチェックしてみてください｡
‫でも､ これが私たちの目指すところです｡
‫データをサイズ32のバッチに変換するんだ｡
‫そのため､ TensorFlowでは非常に効率的に処理することができます｡
‫そこで､ データをバッチに切り出して､ ちょっとした見出しを作ってみましょう｡
‫先ほどお見せしたような､ 誰かの名前を検索するようなちょっとした情報も､
‫私は重要だと思うんですね｡
‫私が言わなければ､ あるいはあなたが偶然に見つけなければ､ どうしてそんなことがわかるのでしょう？
‫私がそれを見つけた唯一の方法は､ 「ねえ､ こんなに素晴らしい情報をみんなが共有しているんだ」ということに偶然出会ったことです｡
‫どうやったら､ 度々､ また､ 私のやり方は完璧ではないけれど､ 役に立っているのか｡
‫誰かの名前と､ もっと知りたいある概念をググってみる｡
‫だからこそ､ 価値あるものを見つけたら､ それを共有することが大切なのです｡
‫なるほど｡
‫また脱線してしまった｡
‫しかし､ なぜ今､ 何かをバッチにするのでしょうか？
‫まあ､ 言ってみれば
‫なぜ､ データをバッチにするのか？
‫また､ バッチでまだ混乱されているようですが､ 私たちはごく一部､ 32枚の画像を取り出して､
‫その32枚の画像を一度に計算するだけです｡
‫そして､ 次のループ､ 次のトレーニングセッションでは､ 次の32個で計算します｡
‫なぜなら､ もし1万枚すべての画像のパターンを計算しようとしたら｡
‫ここで､ 1万枚以上の画像を一度に処理するとします｡
‫全部が全部､ メモリに収まらないかもしれない｡
‫つまり､ CPUは演算速度が速いとはいえ､ メモリの量には限りがあるということです｡
‫私のコンピュータのRAMは16GBですが､ GPUのRAMは8GBかもしれません｡
‫そのため､ 1万枚以上の画像があり､ そのパターンを一度に処理しようとすると､ 8ギガバイト以上になってしまい､
‫学習処理が遅くなってしまう可能性があるのです｡
‫すべてを壊してしまう｡
‫だから､ 一度に32個もやるわけです｡
‫そのため､ 一度に32枚程度の画像を行うわけです｡
‫32枚の画像､ バッチサイズが可能です｡
‫それがここなんです｡
‫これはバッチサイズです｡
‫必要であれば､ バッチサイズを手動で調整することができます｡
‫さて､ それで十分な時間をかけて話をしたわけです｡
‫さっそくコードを書いてみましょう｡
‫何が必要なのか？
‫だから､ ここに書いてください｡
‫TensorFlowを効果的に使うには､ 次のようなテンソル・タプルの形のデータが必要である｡
‫だからテンソルやラベルの形でイメージする｡
‫だから､ ペアで｡
‫そして､ 一度に32枚の画像を機械学習モデルに渡すと､ このラベルに関連する画像のパターンを見つけ出し､
‫それを1万枚以上の画像をすべて使い切るまで､ ある種のループ方式で繰り返すことになるのです｡
‫わかりました｡
‫機能を構築してみよう
‫しかし､ その前にタプルを取得する方法が必要です｡
‫そこで､ 32個のバッチにする前に､ 次のようなタプルを取得する必要があります｡
‫では､ ちょっとした関数を書いてみましょう｡
‫そこで､ 舌の上でうまく転がるような時制のタプルを返す簡単な関数を作成します｡
‫そこで､ 画像ラベルを取得するために､ defを実行したいと思います｡
‫なぜなら､ ここには画像を返す関数があるからです｡
‫つまり､ この関数に渡したパスに関連するラベルを取得したいだけなのです｡
‫そこで､ ここに画像パスを入れます｡
‫この関数がいかに単純か､ あなたは笑うでしょう｡
‫実際のラベルと､ 先ほど書いた画像前処理関数｡
‫そこで､ 画像処理､ 画像パス､ そして画像ラベルを返したいのです｡
‫あれを見てください｡
‫どれだけ基本的なことなのか？
‫画像ファイルのパス名と付加されたラベルを受け取り､ 画像を処理し､ 画像ラベルのテーブルを返す｡
‫docstringが関数より長い｡
‫美しい｡
‫その線も必要なかったんです｡
‫全部やればよかったんだ｡
‫戻るはこちら
‫さて､ そこで簡単な例を挙げてみましょう｡
‫これがどのようなものなのか､ 具体的に見ていきましょう｡
‫プロセス､ イメージ
‫ファイル名が欲しい｡
‫40を好きな数字にしよう｡
‫そして､ それは何なのか？
‫なんていうんですか？
‫ブルレーン
‫ラベル
‫XとYを使えばいいんでしょう？
‫その方が少しはマシかもしれません｡
‫X.
‫なぜ？
‫42.
‫上記のデモ｡
‫美しい｡
‫タプルの中に入っているんですね｡
‫画像は画像処理に渡すのでテンソルの中にあるが､ ラベルはまだテンソルの中にない｡
‫でも､ それでいいんです｡
‫TF定数だけで､ テンソルにすることができるのです｡
‫これでよしとしよう｡
‫これで､ 画像とラベルのペアができました｡
‫時制の形では
‫さて､ データの準備は順調に進んでいます｡
‫さて､ 機械学習の多くは､ データを機械学習モデルに適合する形式に前処理するだけだと言ったが､
‫覚えているだろうか｡
‫それが､ ここでの活動です｡
‫そして､ このプロセスは､ データをデータラベルの形式に変換するもので､
‫どのようなデータを使ってもかまいません｡
‫ですから､ 画像を使わず､ テキストのようなものを使っている場合は､ 前処理の方法を除けば､ 非常に似たような処理になると思います｡
‫テキストは画像と異なるものになります｡
‫やっぱり時制にしないとダメですね｡
‫わかりました｡
‫そこで､ 画像とラベルのペアをタプルの形で取得するための小さな関数を用意しました｡
‫次のビデオでは､ 画像とラベルのペアをバッチに変換する関数を書きます｡
‫また､ 画像がトレーニングバッチ､ 検証バッチ､ テストバッチのいずれに含まれるかによって､
‫注意しなければならない点がいくつかあります｡
‫しかし､ それは次のビデオで見ることができます｡