2017-03-19 6 views
0

テンソルフローでノイズ除去自動エンコーダーを作成します。ouputファイルをテンソルフローのマトリックスとして保存します。

入力データとして799x161の行列を使用します。

はここでテストした後、私はクリーンなデータと比較し、MATLABでそれを処理するために799x161行列として出力ファイルを保存したい

# TEST 
testspeech = scipy.io.loadmat('data/test_cep.mat') 
Y_test = testspeech['ans'] 
Y_test = np.array(Y_test) # 799x161 cepstrum matrix 
noisyspeech = scipy.io.loadmat('data/reverb_cep.mat') 
Y_noisy = noisyspeech['ans'] 
Y_noisy = np.array(Y_noisy) # 799x161 cepstrum addnoise matrix 

batch = Y_test 
batch_noise = Y_noisy 

avg_cost += sess.run(cost, feed_dict=feed2)/num_batch 

print ("cost: %.9f" % (avg_cost)) 

私traininggコード

training_epochs = 100 
batch_size  = 799 
display_step = 10 

# Training 
if do_train: 
print ("Training Start") 
for epoch in range(training_epochs): 
    avg_cost = 0. 
    num_batch = int(X_train.shape[0]/batch_size) 
    for i in range(num_batch): 
     batch = X_train[i*batch_size : i*batch_size+batch_size] 
     batch_noise = batch + 0.3*np.random.randn(batch.shape[0], 161) #addnoise 
     feed1 = {x: batch_noise, y_: batch, keep_prob: 0.5} 
     sess.run(optimizer, feed_dict = feed1) 
     feed2 = {x: batch_noise, y_: batch, keep_prob: 1} 
     avg_cost += sess.run(cost, feed_dict=feed2)/num_batch 

    if epoch % display_step == 0: 
     print ("Epoch: %03d/%03d cost: %.9f" % (epoch, training_epochs, avg_cost)) 

とテストコードです。

私の問題:しかし、マトリックスとして保存する方法はわかりません。私は私のPCに読み込み可能なファイルとして行列を保存したいということです。私はそれを読むことができるのか分からない。

答えて

0

わかりません
で読むことができるようにnumpy arrayを保存しますか?あなたがscipyを使用している

、私はそれはそれを
を行うことができると思いますがscipy.io.loadmatを使用している、興味深い

same question

、あなたはMatlabの負荷 test.matを使用し、その後 Y_testY_noisy

scipy.io.savemat('test.mat', dict('data'=Y_test, 'res'=Y_noisy)) 

を保存するとしますが、あなたはscipy.io.savematを知らないのですか?

+0

私は愚かです...ありがと... –

関連する問題