gpt4 book ai didi

tensorflow - 如何训练一个简单的神经网络来实现中值滤波器?

转载 作者:行者123 更新时间:2023-11-30 09:30:58 25 4
gpt4 key购买 nike

任务:给定随机序列数 {0,1,2,3,4},训练神经网络来查找数字“2”的位置索引。该网络模仿中值滤波器,它找到中值数的索引而不是中值数本身。例如,给定输入 [3,1,0,2,4],输出/标签为“3”(或 [0,0,0,1,0])。

我可以通过设置内核和偏置权重来手动构建一个简单的神经网络来完成这项工作。它完美地完成了任务。 keras代码如下:

val_len = 5

def GetModel():
inputs_img = keras.layers.Input(shape=(val_len, 1), name='rank')
net = keras.layers.Conv1D(1, 1, activation='tanh', name='layer1', trainable=True, kernel_initializer=keras.initializers.RandomUniform(-5, 5), bias_initializer=keras.initializers.RandomUniform(-5, 5))(inputs_img)
net = keras.layers.Lambda(lambda x: K.abs(x))(net)
net = keras.layers.Conv1D(1, 1, activation='relu', name='layer2', trainable=True, kernel_initializer=keras.initializers.RandomUniform(-5, 5), bias_initializer=keras.initializers.RandomUniform(-5, 5))(net)
net = keras.layers.Flatten()(net)
net = keras.layers.Dense(units=val_len, name = 'mid_pos', activation='softmax', trainable=True, kernel_initializer=keras.initializers.RandomUniform(-5, 5), bias_initializer=keras.initializers.RandomUniform(-5, 5))(net)
model = keras.models.Model(inputs=[inputs_img], outputs=[net])
return model

model = GetModel()
# do 2 - x
model.get_layer('layer1').set_weights([np.array([[[-1]]], dtype=np.float32), np.array([2], dtype=np.float32)])
# do 1 - x
model.get_layer('layer2').set_weights([np.array([[[-1]]], dtype=np.float32), np.array([1], dtype=np.float32)])
# do 1-to-1 connection
model.get_layer('mid_pos').set_weights([np.array([[1,0,0,0,0],
[0,1,0,0,0],
[0,0,1,0,0],
[0,0,0,1,0],
[0,0,0,0,1]], dtype=np.float32),
np.array([0,0,0,0,0], dtype=np.float32)])

但是,这个简单的模型无法从示例中学习权重(我尝试了很多优化器)。它能达到的最佳准确度是 0.2,这是从 5 个类别中随机选择的。如果我们手动分配“layer2”和“mid_pos”层的权重,模型就可以开始学习“layer1”。

我的问题是:1.为什么这个简单的模型无法从示例中学习? 2.如何提高自己的学习能力?感谢您的意见。 (顺便说一句,广义的 cnn 不是解决方案)

最佳答案

关于模型:

  • 看来你的初始化器太大了。让标准初始化器代替。
  • 此外,您正在使用 relu 来处理如此小的维度数据。获得全零的机会很大。

关于tensorflow - 如何训练一个简单的神经网络来实现中值滤波器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58327708/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com