Eur*_*oka 1 machine-learning deep-learning lstm keras tensorflow
我有3个变量x,y,z的数据集。它们是3种不同传感器的读数。这些将作为输入。
当这些传感器找到特定对象时,其读数的相应输出应为1。否则,那里的读数的相应输出应为0。
我要做的是制作一个神经网络(可能是LSTM)或任何其他方法来接收传感器的读数,并告诉传感器是否在寻找对象。请注意,传感器输出的值通常与图中的值不同,但是我注意到的是读数与它们之间的距离之间的相关性。
最好的实现方法是什么?
“最好的”模型是“艺术”。您必须进行测试,直到找到适合自己数据的数据为止。
但基本上,您将获得带有shape的输入(examples, time_steps, features),其中:
examples =任何值,越多越好 time_steps =每个示例的长度(读数数) features = 3。然后,您将创建一个以以下内容开头的模型:
inputs = Input((None, 3)) #variable time_steps, 3 features
Run Code Online (Sandbox Code Playgroud)
您可能会受益于使用这些值的归一化,可能与批处理归一化层配合使用:
outputs = BatchNormalization()(inputs)
outputs = Activation('tanh')(outputs)
Run Code Online (Sandbox Code Playgroud)
然后启动模型的LSTM部分(层数取决于您的测试)
#any number of layers similar to this (this can also be 0)
outputs = LSTM(units, return_sequences=True, activation='tanh')(outputs)
#the last LSTM layer
outputs = LSTM(units, return_sequences=False, activation='tanh')(outputs)
Run Code Online (Sandbox Code Playgroud)
您可能会或可能不会添加额外的分类层,例如:
#any number of classification layers, including 0
outputs = Dense(units)(outputs)
outputs = BatchNormalization()(outputs)
outputs = Activation('relu')(outputs)
#last classification:
outputs = Dense(1)(outputs)
outputs = BatchNormalization()(outputs)
outputs = Activatoin('sigmoid')(outputs)
Run Code Online (Sandbox Code Playgroud)
最后,加入所有内容:
model = Model(intpus, outputs)
Run Code Online (Sandbox Code Playgroud)
请注意,这只是模型的一个示例。这可能会有所不同(包括分支,池,注意机制等,但是您的问题似乎很简单)。
这里的重要部分是:
(examples, units_or_features) (examples, 1) | 归档时间: |
|
| 查看次数: |
121 次 |
| 最近记录: |