2017-06-13 7 views
0

これは一種のpytorch初心者の質問です。 Pytorchでは、私は2つのテンソルの大きさで要素の賢明な分割をしようとしています[5,5,3]。 numpyでは、np.divide()を使ってうまく動作しますが、何とかここでエラーが発生します。私はPyTorchバージョン0.1.12をPython 3.5に使用しています。テンソル分割in pytorch。アサーションエラー

C = [サイズ5x5x3のtorch.DoubleTensor]

input_patch =

input_patchがtorch.autograd変数のスライスであり、かつcはCを行うことによって行われる[サイズ5x5x3のtorch.FloatTensor] = torch.from_numpy(self.patch_filt [:,:、:、0])。フロート()

行う場合:

torch.div(input_patch, c) 

を私は理解していない、このエラーが発生します。

変数cはtorch_tensorであってはなりませんか? FloatTensorであるようにキャストした後でも、同じエラーが発生します。

ありがとうございました!

+1

こんにちは!私はそのようなあなたのエラーを再現することはできません。どのバージョンのPytorchを使用していますか、どのようにinput_patchとcを生成していますか? cとinput_patchの両方が同じdtypeで、torch.autograd.Variableまたは両方とも共通テンソルであることを確認してください。私はあなたが1つを変数にして、もう1つはそうではないと思う?あなたのエラーの行は、私が知る限り、テンソルを除数または定数として供給したかどうかを区別することだけです。どちらも可能です。 – mexmex

答えて

1

Input_patchがtorch.autograd変数のスライスであり、cは、とにかく

c = torch.from_numpy(self.patch_filt[:, :, :, 0]).float() 

を行うことによって行われ、mexmex、私は

Variable(torch.from_numpy(self.patch_filt[:, :, :, 0])).float() 
としてCを定義することによってそれを解決してきたあなたのコメントに感謝
関連する問題