我是機器學習領域的新手。我在第一列中有一個 1d 信號及其對應的頻率,mean_amplitude,并且時間保存在檔案的第二列中:這些是監督訓練的輸入-輸出對,即測驗的 1d 信號,我需要輸出頻率、mean_amplitude 和時間。
-0.000000000000000000e 00 5.80000
-0.000000000000000000e 00 3.11111
-0.000000000000000000e 00 -1.3666
-0.000000000000000000e 00
-1.366125990000000065e-14
-1.032400010000000034e-13
-6.034000879999999677e-13
-5.719921059999999811e-13
-1.361178959999999947e-12
-9.374413750000000466e-11
-1.666704970000000006e-10
-1.149504050000000062e-09
5.453276159999999863e-10
1.457022949999999906e-09
-5.355599959999999815e-09
-4.683606839999999697e-09
-2.849577019999999957e-09
-1.108899989999999921e-08
-2.849577019999999957e-09
-4.683606839999999697e-09
-5.355599959999999815e-09
1.457022949999999906e-09
5.453276159999999863e-10
-1.149504050000000062e-09
-1.666704970000000006e-10
-9.374413750000000466e-11
-1.361178959999999947e-12
-5.719921059999999811e-13
-6.034000879999999677e-13
-1.032400010000000034e-13
-0.000000000000000000e 00
-0.000000000000000000e 00
以類似的方式,我將 1000 個輸入-輸出對保存在附加的目錄中,我想訓練一個autoencoder網路并希望網路預測新測驗信號的頻率、均值和時間。
在這方面,我需要一些建議,如何將輸入提供給這種輸入-輸出對的自動編碼器。
我在 keras 教程中找到了以下代碼,但不知道如何為此類資料實作它。我希望機器學習專家可以分享一些想法。
input = layers.Input(shape=(28, 28, 1))
# Encoder
x = layers.Conv2D(32, (3, 3), activation="relu", padding="same")(input)
x = layers.MaxPooling2D((2, 2), padding="same")(x)
x = layers.Conv2D(32, (3, 3), activation="relu", padding="same")(x)
x = layers.MaxPooling2D((2, 2), padding="same")(x)
# Decoder
x = layers.Conv2DTranspose(32, (3, 3), strides=2, activation="relu", padding="same")(x)
x = layers.Conv2DTranspose(32, (3, 3), strides=2, activation="relu", padding="same")(x)
x = layers.Conv2D(1, (3, 3), activation="sigmoid", padding="same")(x)
# Autoencoder
autoencoder = Model(input, x)
autoencoder.compile(optimizer="adam", loss="binary_crossentropy")
autoencoder.summary()
autoencoder.fit(x=train_data,y=train_data,epochs=50,batch_size=128,shuffle=True,validation_data=(test_data, test_data),)
uj5u.com熱心網友回復:
這是一個簡單的作業模型,其中包含所需的虛擬資料:
import tensorflow as tf
signal_input = tf.keras.layers.Input(shape=(1,))
x = tf.keras.layers.Dense(16, activation='relu')(signal_input)
x = tf.keras.layers.Dense(8, activation='relu')(x)
output = tf.keras.layers.Dense(3, activation='linear')(x)
model = tf.keras.models.Model(inputs=signal_input, outputs=output)
model.compile(optimizer='adam',
loss='MSE')
signals = tf.random.normal((1000,1)) # 1000 signals with 1 value each
labels = tf.random.normal((1000, 3)) # 1000 labels with 3 values for frequency, mean_amplitude, and a time
model.fit(x = signals, y = labels, epochs=5, batch_size=8)
和輸出:
Epoch 1/5
32/32 [==============================] - 0s 1ms/step - loss: 1.0087
Epoch 2/5
32/32 [==============================] - 0s 1ms/step - loss: 0.9856
Epoch 3/5
32/32 [==============================] - 0s 1ms/step - loss: 0.9777
Epoch 4/5
32/32 [==============================] - 0s 1ms/step - loss: 0.9747
Epoch 5/5
32/32 [==============================] - 0s 1ms/step - loss: 0.9733
<keras.callbacks.History at 0x7f4d0909f7d0>
這應該讓您了解如何為您的資料實作模型。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/337542.html
標籤:张量流 凯拉斯 deep-learning autoencoder encoder-decoder
上一篇:如何使用Tensorflow2/Keras保存和繼續訓練具有多個模型部分的GAN
下一篇:cv.imread的記憶體問題
