Tensorflowの消失関数として2つのポイントクラウド間のEarth Moverの距離を計算したいとします。Tensorflowの消失関数としてEarth Moverの距離を使用する
pointclouds1 = tf.placeholder(tf.float32, shape=(batch_size, num_point, 3))
pointclouds2 = tf.placeholder(tf.float32, shape=(batch_size, num_point, 3))
//'3' means xyz coordinate
def get_loss(pointclouds1, pointclouds2):
loss = EMD.getEMD(pointclouds1,pointclouds2)
return loss
は残念ながら、私はエラーを取得する:
File "F:\pointclouds\utils\EMD.py", line 71, in groundDistance
return np.linalg.norm(x1 - x2, norm)
File "C:\Users\xu\Anaconda3\lib\site-packages\numpy\linalg\linalg.py", line 2257, in norm
raise ValueError("Improper number of dimensions to norm.")
ValueError: Improper number of dimensions to norm.
EMD.pyはhttps://github.com/chalmersgit/EMD/blob/master/EMD.py
からである。しかし、私は直接numpyの配列を操作するために、ファイルを使用することができます。
>>python EMD.py
EMD
We got: 160.542759771
C example got 160.54277
Success
私はTensorを直接操作することはできないと思うので、どうすればいいですか?
ありがとうございました!私はテンソルフロー操作を再作成しようとします。 –