[Pytorch] RuntimeError: _thnn_conv2d_forward not supported on CPUType for Byte


RuntimeError: _thnn_conv2d_forward not supported on CPUType for Byte

Pytorchを用いてディープラーニングのモデリングをやっていたら,次のようなエラーがでたー.

RuntimeError: _thnn_conv2d_forward not supported on CPUType for Byte

原因

入力をuint8というBytetensorで定義していることによる.要するに入力の型があっていないと怒られている.

対処法

ネットワークに入力するテンソルの型を変更すれば,良いのでどこで変更しても良いが,次のように変更する.


x = x.float()

私の場合,データローダーから呼び出したtensorに対して,float()で型変換を行なった.次のような感じ.model(x)はいわゆるネットワークと呼ばれる部分.

for i,(x, labels) in enumerate(train_dataloader):
    opt.zero_grad()
    batch_size = x.size()[0]
    x = x.float().to(params['device'])
    pred_labels = model(x)

以上です.