2017-01-17 7 views
0

xをfloat変数として宣言しましたが、変数のfftを計算するとエラーが発生します。私の入力は複素数ではなく、正と負の浮動小数点数になります。どうすれば変数を宣言するべきですか? float変数のテンソルフローにおけるfftの計算エラー

を与えられたコメントから自分のコード

x=tf.Variable([1.0,2.3,3.99,4,5.1],dtype=tf.int32) 
model = tf.initialize_all_variables() 
sess= tf.Session() 
sess.run(model) 
print(sess.run(tf.fft(x)) 

エラー

TypeError: Input 'input' of 'FFT' Op has float32 that doesnot match expected type of complex64 

更新されたコード私は、私は別のエラー

を取得し、変数

a = tf.Variable([1.3, -2, 3.6, 4.1, 5.9],dtype=tf.float32) 
b = tf.Variable([0, 0, 0, 0, 0], dtype=tf.float32) 
c = tf.complex(a, b) 
d = tf.fft(c) 
model = tf.initialize_all_variables() 
sess=tf.Session() 
sess.run(model) 
print(sess.run(d)) 

を変更しました

私は簡単にscipyのダウンロード

from scipy.fftpack import fft as scifft 
b = [1.3, -2, 3.6, 4.1, 5.9] 
print(scifft(b)) 

で行い、tensorflow計算を使用して同じ値を得ることができる方法

[ 12.90000000+0.j -3.72426458+7.8072391j 0.52426458+4.16797523j 0.52426458-4.16797523j -3.72426458-7.8072391j ] 

として結果を得ることができますか?

+0

(すなわち '[コンプレックス(X、0)xのyour_list用]')とパス: あなたは変数の型に 例を変更するためのtf.cast使用することができますそれ? – Tagc

+0

@Tagc私は自分のコードと新しいエラーを更新しました。 – RDK

答えて

0

どのテンソルフローのバージョンを使用していますか? FFTを計算するためにGPUバージョンをインストールする必要があります。 私は同様の問題を抱えていましたが、まずこれを理解するのが難しいです。 tf.cast(tf.Varaible(x,dtype=tf.int32),dtype=tf.complex64)

あなたがそれに相当する複雑な値にこれらの山車を変換するとどうなりますか
+0

ありがとうございました。 – RDK

+0

FYI:TensorFlowは、2017年5月からCPU上でFFTをサポートするようになりました。 –

関連する問題