質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
CUDA

CUDAは並列計算プラットフォームであり、Nvidia GPU(Graphics Processing Units)向けのプログラミングモデルです。CUDAは様々なプログラミング言語、ライブラリ、APIを通してNvidiaにインターフェイスを提供します。

深層学習

深層学習は、多数のレイヤのニューラルネットワークによる機械学習手法。人工知能研究の一つでディープラーニングとも呼ばれています。コンピューター自体がデータの潜在的な特徴を汲み取り、効率的で的確な判断を実現することができます。

PyTorch

PyTorchは、オープンソースのPython向けの機械学習ライブラリ。Facebookの人工知能研究グループが開発を主導しています。強力なGPUサポートを備えたテンソル計算、テープベースの自動微分による柔軟なニューラルネットワークの記述が可能です。

NumPy

NumPyはPythonのプログラミング言語の科学的と数学的なコンピューティングに関する拡張モジュールです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

1288閲覧

pytorch fp16からtorch.flort32に変える方法はありますか?

Flan.

総合スコア123

CUDA

CUDAは並列計算プラットフォームであり、Nvidia GPU(Graphics Processing Units)向けのプログラミングモデルです。CUDAは様々なプログラミング言語、ライブラリ、APIを通してNvidiaにインターフェイスを提供します。

深層学習

深層学習は、多数のレイヤのニューラルネットワークによる機械学習手法。人工知能研究の一つでディープラーニングとも呼ばれています。コンピューター自体がデータの潜在的な特徴を汲み取り、効率的で的確な判断を実現することができます。

PyTorch

PyTorchは、オープンソースのPython向けの機械学習ライブラリ。Facebookの人工知能研究グループが開発を主導しています。強力なGPUサポートを備えたテンソル計算、テープベースの自動微分による柔軟なニューラルネットワークの記述が可能です。

NumPy

NumPyはPythonのプログラミング言語の科学的と数学的なコンピューティングに関する拡張モジュールです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/06/09 00:29

fp16からtorch.flort32に変えれば下のエラーが治ると思うのですが
調べてもnumpyからtorch など違う物しかでてきません

fp16からtorch.flort32に変える方法がわかる人教えてください
もし変えても治らないなら 原因を教えてください

--------------------------------------------------------------------------- RuntimeError Traceback (most recent call last) <ipython-input-1-00ebb105f79f> in <module> 396 total_reward_vec = np.hstack((total_reward_vec[1:], episode_reward)) # 報酬を記録 397 if batch_size<len(memory.buffer*4): --> 398 memory_TDerror.update_TDerror(gamma,multireward_steps) 399 for _ in range(t): 400 trin.pioritized_experience_replay(batch_size, gamma,step=episode,state_size=state_,action_size=acthon,multireward_steps=multireward_steps) <ipython-input-1-00ebb105f79f> in update_TDerror(self, gamma, multireward_steps) 294 295 next_state=memory.buffer[i][0] --> 296 target = memory.buffer[i][2] + (gamma**multireward_steps) * targetQN.forward(next_state,"net_v")[0] 297 self.buffer[i] =target - mainQN.forward(inpp,"net_q")[0] 298 <ipython-input-1-00ebb105f79f> in forward(self, inputs, net) 188 if net=="net_v": 189 V=self.V(x)-self.V_q(x) --> 190 V=V.to("cpu")+0 191 return V 192 if net=="net_a": ~\Anaconda3\envs\pyflan\lib\site-packages\apex\amp\wrap.py in wrapper(*args, **kwargs) 51 52 if len(types) <= 1: ---> 53 return orig_fn(*args, **kwargs) 54 elif len(types) == 2 and types == set(['HalfTensor', 'FloatTensor']): 55 new_args = utils.casted_args(cast_fn, RuntimeError: "add_cpu/sub_cpu" not implemented for 'Half'

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tiitoi

2020/06/09 06:51

エラーを見ると、torch.flort32 から torch.flort16 にキャストしようとしてエラーになっていませんか?一般的な GPU では単精度演算 (float32) しかサポートされていないのが普通です。
guest

回答1

0

ベストアンサー

エラーメッセージで検索をかけてみましたが、 Flan.様の書いていらっしゃる通り、'Half'(FP16)になっているのが原因のようですね。

以下の2つのうち、どちらか好きな方で変換できるのではないかと思います。

  • Tensor.float()

https://pytorch.org/docs/stable/tensors.html#torch.Tensor.float

  • Tensor.to()

https://pytorch.org/docs/stable/tensors.html#torch.Tensor.to
.to(torch.float32)

投稿2020/06/09 14:40

kabayan55

総合スコア389

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問