HerokuにPytorchで学習させた機械学習モデルを利用したFlaskアプリをデプロイしたところ、500MBの容量制限に引っかかりました。
ログを見るとtorchのみで600MBほどあり、それが原因でした。
pytorchにcpuオンリー版があり、そちらは容量小さいようで、それを指定したらデプロイできました(requirements.txtの5行目)。
requirements.txt
Flask
boto3==1.9.71
botocore==1.12.71
numpy==1.15.4
http://download.pytorch.org/whl/cpu/torch-0.4.1-cp36-cp36m-linux_x86_64.whl
torchvision==0.2.1
Pillow==4.0.0
gunicorn
モデル読み込みもcpu指定でおこない、普通に動いています。
application.py
# モデル読み込み
device = torch.device('cpu')
model = torch.load('model.pth', map_location=device)