Google Colabでエラーが出てCodeFormerが使えない時の対処法

Google Colabいくつかのエラーとランタイムの復旧
ImportError: /usr/local/lib/python3.11/dist-packages/torch/lib/libtorch_cuda.so: undefined symbol: ncclMemFree
PyTorch
のインストールに関連するエラー
解決方法
- PyTorch と CUDA のバージョンを一致させる Google ColabでCUDAとPyTorchが互換性のあるバージョンを手動でインストールする必要があります。次のコマンドを実行して、正しいバージョンをインストールします。
!pip uninstall torch torchvision torchaudio -y
!pip install torch==2.0.1+cu118 torchvision==0.15.2+cu118 torchaudio==2.0.2+cu118 -f https://download.pytorch.org/whl/torch_stable.html
このコマンドは、CUDA 11.8 に対応した PyTorch 2.0.1、torchvision 0.15.2、および torchaudio 2.0.2 をインストールします。
- ランタイムを再起動 インストールが完了したら、Google Colabのランタイムを再起動する必要があります。再起動後、もう一度コードを実行。
RuntimeError: Numpy is not available
Numpy
がインストールされていない、もしくは適切に利用できない状態
このエラーを解決するためには、Numpy
を手動でインストールする必要があります。
解決手順
Numpy
をインストールする まず、Numpy
をインストールします。
!pip install numpy
- 再度実行する
Numpy
をインストールした後、もう一度顔補正コードを実行してみる。
もしエラーがまだ解消されない場合は、他にも依存関係が不足している可能性があるので、ランタイムの復旧を行ってみましょう。
Sakasa AI
Colab の無償枠で GPU 上限に達してしまった場合の代替手段 | Sakasa AI
Colab の無償枠で GPU 上限に達してしまった場合に、ユニットの購入以外の方法をまとめました。使用方法なども解説しています。
目次
復旧手順
- メニューから「ランタイム」>「ランタイムの接続を解除して削除」 を押してください
(これでColabの環境を初期状態に戻します) - 新しいランタイムを割り当てる必要があります。
- Colab画面の上の方にある▶️【接続】ボタン(または【再接続】【ランタイムを接続】)を押して、新しく接続
- リセット後、必須ライブラリのインストールをします
必須ライブラリのインストール
!pip install torch==2.0.1 torchvision==0.15.2
!pip install basicsr facexlib gfpgan
!pip install -U numpy
torch
/torchvision
は CodeFormer 推奨バージョンに固定basicsr
/facexlib
/gfpgan
は補完モデルに必要numpy
は汎用依存ライブラリ
CodeFormer リポジトリのクローンと依存関係インストール
!git clone https://github.com/sczhou/CodeFormer.git
%cd CodeFormer
!pip install -r requirements.txt
ここで basicsr
などが重複して入ることがありますが問題ありません。
学習済みモデル(重み)のダウンロード
!mkdir -p weights
!wget https://github.com/sczhou/CodeFormer/releases/download/v0.1.0/codeformer.pth \
-O weights/codeformer.pth
画像アップロード用セルの実行
from google.colab import files
uploaded = files.upload()
補正(推論)実行セルの実行
import torch
from basicsr.archs.codeformer_arch import CodeFormer
from torchvision.transforms.functional import to_tensor, to_pil_image
from PIL import Image
# モデルロード
device = 'cuda' if torch.cuda.is_available() else 'cpu'
net = CodeFormer(dim_embd=512, codebook_size=1024, n_heads=8, n_layers=9,
connect_list=["32","64","128","256"]).to(device)
net.load_state_dict(torch.load('weights/codeformer.pth')['params_ema'])
net.eval()
# 画像読み込み
path = list(uploaded.keys())[0]
img = Image.open(path).convert("RGB")
inp = to_tensor(img).unsqueeze(0).to(device)
# 推論
with torch.no_grad():
out = net(inp, w=0.7)[0]
img_restored = to_pil_image(out.cpu().clamp(0,1))
# 保存・表示
img_restored.save('restored_image.png')
display(img_restored)
出力ファイルのダウンロード(任意)
files.download('restored_image.png')
まだ解決しない場合
ChatGPT:
このエラーは、NumPy のバージョンと他のパッケージ(特に PyTorch や basicsr)との互換性が壊れていることが原因です。Colab のランタイムを再接続したあと、インストール順や互換性が崩れることがよくあります。
✅ 解決方法:パッケージの競合を整理する
以下のステップで、確実に再構築できます。
🔁 ステップ①:ランタイムのリセット(再確認)
- 「ランタイム」>「ランタイムを出荷時設定にリセット」
- その後「接続」し直す
- ノートブックを最初からやり直す
ステップ②:競合パッケージをクリアして再インストール
以下を 順番通りにセルで実行
# 最初に旧パッケージを削除(特に古いtorchやnumpy関連)
!pip uninstall -y torch torchvision torchaudio numpy
# 正しい組み合わせで再インストール(Colabに最適)
!pip install torch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2
!pip install numpy==1.24.3
# CodeFormer用ライブラリ
!pip install basicsr facexlib gfpgan
# CodeFormer本体をクローン
!git clone https://github.com/sczhou/CodeFormer.git
%cd CodeFormer
!pip install -r requirements.txt
なぜリセットが必要なのか?
- もともとColabにはPyTorch 2.1系+CUDA 12.1の組み合わせが入っています
- そこに違うバージョン(例えばCUDA 11.8向けとか)を無理にインストールすると、CUDAライブラリやNCCLライブラリが壊れます
- 結果、
undefined symbol: ncclMemFree
など「ライブラリシンボルが見つからない」という致命的エラーになります - Colabでは、壊れた環境を元に戻すにはリセットしかありません。
Sakasa AI
Colab の無償枠で GPU 上限に達してしまった場合の代替手段 | Sakasa AI
Colab の無償枠で GPU 上限に達してしまった場合に、ユニットの購入以外の方法をまとめました。使用方法なども解説しています。