【发布时间】:2018-12-12 20:39:51
【问题描述】:
嘿嘿,我有一些信号处理的模型问题。
上下文:我有一些信号作为浮点数存储在 numpy 数组中,它们都是不同的长度,我需要及时提取特定点的信号偏移量,问题是我不知道那个点在哪里在数组中,所以我无法调整数组的大小(以便所有信号都具有相同的长度)。
我有大约 8000 个已知偏移量的信号。所以我想在他们身上训练模型。
我现在拥有的东西
model = Sequential()
model.add(LSTM(256, input_shape=(None,1)))
model.add(Dropout(0.2))
model.add(Dense(1, activation="tanh"))
adam = Adam(lr=0.001)
model.compile(loss='mse', optimizer=adam,metrics=['mse', 'acc'])
- input_shape=(None,1) 因为我不知道数组的长度
- activation="tanh" 最后一层必须也可以返回负数。
基本上我的模型不应该依赖于长度,应该输出负值和正值。这个模型不能满足我的需要,我想知道是否有人可以为我指出一个更好的方向。
“不起作用”,如在 1000 个 epochs 的约 200 个信号/批次,100 个 step/epoch 的训练后,输出是“随机的”,与实际值相差甚远。
我正在考虑使用 ConvNet 代替 LSTM。但我不能使用“Flatten”或“Reshape”。
一个带有 numpy savetxt 的信号
-1.118700742721557617e+00
-9.661099910736083984e-01
-9.661099910736083984e-01
-1.088183045387268066e+00
-1.149218797683715820e+00
-1.118700742721557617e+00
-1.088183045387268066e+00
-1.118700742721557617e+00
-1.149218797683715820e+00
-1.088183045387268066e+00
-1.088183045387268066e+00
-1.118700742721557617e+00
-1.179736852645874023e+00
-1.149218797683715820e+00
-1.118700742721557617e+00
-1.149218797683715820e+00
-1.240772962570190430e+00
-1.301809072494506836e+00
-1.240772962570190430e+00
-1.179736852645874023e+00
-1.149218797683715820e+00
-1.240772962570190430e+00
-1.332327008247375488e+00
-1.393362998962402344e+00
-1.362845063209533691e+00
-1.271291017532348633e+00
-1.240772962570190430e+00
-1.362845063209533691e+00
-1.423881053924560547e+00
-1.301809072494506836e+00
-1.088183045387268066e+00
-1.027147054672241211e+00
-1.118700742721557617e+00
-1.240772962570190430e+00
-1.332327008247375488e+00
-1.393362998962402344e+00
-1.332327008247375488e+00
-1.301809072494506836e+00
-1.271291017532348633e+00
-1.210254907608032227e+00
-1.057664990425109863e+00
-9.966289997100830078e-01
-9.966289997100830078e-01
-8.440380096435546875e-01
-5.083401203155517578e-01
-3.252310752868652344e-01
-4.778220653533935547e-01
-7.219660282135009766e-01
-7.219660282135009766e-01
-6.609300374984741211e-01
【问题讨论】:
-
我不明白你的信号形式。模型不工作怎么办?你能给出一些示例数据和错误吗?
-
“不起作用”,如在 1000 个 epoch 训练后,约 200 个信号/批次,100 个 step/epoch,输出是“随机的”,与实际值相差甚远。
-
您想要检测的事物的签名有多长(以样本数计)?您应该定义一个感受野稍宽的模型,然后在感受野大小的帧上进行训练。训练数据必须分成这样的卡盘,并单独标记(可以从您的输入数据中自动完成)
标签: python keras regression signal-processing