PyTorchのDataParallelのモデルを保存する

PyTorchで複数GPUで学習させる場合,

model = nn.DataParallel(model, device_ids=[0,1,2])

のようにDataParallelで保存しますが,このモデルを保存したい場合にcuda runtime error : out of memoryが出ることがあります.
その場合は,下のようにDataParallelから元のモデルを取り出してCPUのモデルに変えてあげることで保存できるようになります.

torch.save(model.module.cpu(),file_path)

読み込み時はこうすればOK

new_model = torch.load(file_path)

参考

Optional: Data Parallelism — PyTorch Tutorials 1.0.0.dev20181002 documentation

cProfileを使ってPythonでの計算時間を測定する

最近は,4回生になり研究室に配属されて画像処理の勉強をしています. 論文を読んでそれを実装してみるという流れで勉強していますが,REPLでnumpyの行列計算のコードを打っていると,目立って時間がかかる行があることが分かります. そこで,繰り返し呼ぶ処理や重い処理にかかる時間を,定量的に調べたいと思いました.

やりたいこと

  • スクリプト全体で,時間がかかっている箇所を調べたい
  • 遅い処理を見つけて高速化したい
  • できるだけ簡単にプロファイリングしたい
続きを読む

OVRPhonemeContext.Start ERROR: Could not create Phoneme context.

概要

Unityでリップシンクをしようとして、OVRLipSyncを使ったらエラーが出た。

OVRPhonemeContext.Start ERROR: Could not create Phoneme context.

f:id:shiba6v:20180301205522p:plain デモと同じはずなのに、動かず・・・

続きを読む

過去問サイトを自動生成する

大学の過去問サイトを自動生成するプロジェクトを作った. GoogleDriveに過去問を入れて,Usageに従って使うと簡単(これを簡単と言って良いのか・・・?)に過去問サイトが作れます.

最初は雑にRailsでやっていたけれど,過去問の量ならDBをつかわないで静的ページにした方がBitballoonにも置けて速くて良い気がしたので,シンプルな過去問サイト作成プログラムにした. HTMLとかCSSが書けると,もっとカスタマイズできる.

サーバー代もかからないし更新も簡単なので,いろんな人に使ってほしいな〜

github.com

Unityでプレビュー時に毎回SteamVRが立ち上がるのをやめさせたい

UnityでSteamVR Pluginを導入して開発中、UnityEditor上でプレビューするたびにSteamVRが立ち上がります。 この機能は、HMDを使うときはありがたいのですが、SteamVR Pluginを導入してやっぱりやめた時やVR HMDを使わずにプレビューするときなどにSteamVRが勝手に立ち上がるのは不便です。

f:id:shiba6v:20180217034352p:plain

続きを読む

Mercari BOLD Internshipでアメリカに行ってきた話

この記事はCAMPHOR- Advent Calendar 2017 13日目の記事です. CAMPHOR- は京都のIT系学生のためのコミュニティです.興味がある人は,遊びに来てくれると嬉しいです.

はじめに

この記事には,Mercari BOLD Internship 2017 GLOBALというインターンに参加した時の記録を日記のような形でまとめた.このインターンについてざっくり言うと,学生エンジニアと学生プランナーが2人1組でアメリカやイギリスに行って,メルカリが世界で戦うためのアイディアを考えてくる,ということだ.

続きを読む