【问题标题】:Can we implement levenberg_marquardt optimizer in tf.keras.sequential compiler?我们可以在 tf.keras.sequential 编译器中实现 levenberg_marquardt 优化器吗?
【发布时间】:2021-03-10 16:32:15
【问题描述】:

我正在使用 NN 预测给定输入位置坐标的 Fe 等级。总数据分为训练数据 = 3495 个数据点和测试数据 = 617 个数据点。

Input and output data

enter image description here

ann = tf.keras.models.Sequential()

ann.add(tf.keras.layers.Dense(units =25, activation = 'gelu'))

ann.add(tf.keras.layers.Dense(units =15, activation = 'gelu'))

ann.add(tf.keras.layers.Dense(units =10, activation = 'gelu'))

ann.add(tf.keras.layers.Dense(units = 1))

ann.compile(optimizer= 'adam', loss = 'mean_squared_error', metrics = ['mae','RootMeanSquaredError'])

history = ann.fit(x_train,y_train,batch_size = 32, epochs = 500, validation_split=0.10, shuffle= True)

我想实现 Levenberg_marquardt 优化器而不是“亚当”。 我们可以直接在这里做吗?如果不是,如果我想使用此优化器算法,我应该如何进行?

【问题讨论】:

  • 下一次,请花一分钟时间看看如何正确格式化您的代码 sn-ps(现在为您完成)。

标签: python tensorflow keras deep-learning neural-network


【解决方案1】:

这是可能的,但绝对不是一件容易的事。请参阅documentation 了解如何操作。

创建自定义优化器 如果您打算创建自己的优化算法, 只需从此类继承并覆盖以下方法:

_resource_apply_dense(给定梯度张量密集的更新变量)

_resource_apply_sparse(给定梯度张量的更新变量是稀疏的)

_create_slots(如果您的优化器算法需要额外的变量)

get_config(优化器的序列化,包含所有超参数)

如果您正在寻找可以直接传递的其他优化器,您可以查看tensorflow_addons

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-07-04
    • 2017-08-05
    • 2016-07-21
    • 2017-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-29
    相关资源
    最近更新 更多