11章fastaiの中位APIによるデータマングリング
前章では、Tokenizer
とNumericalize
のテキストの集合に対する操作につて説明し、データブロックAPIのTextBlock
がこれらのTransformを呼び出していることを説明した。しかし、これらのTransformを1つだけ使いたい場合にはどうしたらいいのだろうか。例えば中間結果を見たい場合、すでにトークン分割されたテキストが手元にある場合などだ。より一般的に言えば、特定のユースケースに対してデータブロックAPIが十分に柔軟でない場合もあるだろう。このような場合には、fastaiの中位APIを使ってデータを処理する必要がある。データブロックAPIはこの中位APIの上に構築されているので、中位APIを使えば、データブロックAPIでできることはすべてできるし、さらにはるかに多くのことができる。
11.1 fastaiの多層APIの詳細
fastaiのライブラリは、多層APIとして構成されている。一番上の層はアプリケーションで、「1章 ディープラーニングへの旅路」で説明したように、この層を用いるとわずか5行でモデルを訓練することができる。例えば、テキストクラス分類器用のDataLoaders
を作るには下のようにする。
from fastai.text.all import * dls = TextDataLoaders.from_folder(untar_data(URLs.IMDB), valid='test')
ファクトリメソッドTextDataLoaders.from_folder
は、対象とするデータセットが、IMDbデータセットとまったく同じ構成になっている場合にはとても便利だが、実際にはそうでない場合のほうが多い。データブロックAPIを用いるともう少し柔軟になる。前章で見たように、次のように書いても同じ結果が得られる。 ...
Get PyTorchとfastaiではじめるディープラーニング ―エンジニアのためのAIアプリケーション開発 now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.