Matlab TFLEARN多变量回归不收敛(尝试复制fitlab fitnet)

Matlab TFLEARN多变量回归不收敛(尝试复制fitlab fitnet),matlab,tensorflow,neural-network,tflearn,Matlab,Tensorflow,Neural Network,Tflearn,我正在尝试用TFLEARN编写一个模型,以适应16个参数 我以前在Matlab中使用“fitnet”函数运行过相同的实验,该函数有两个隐藏层,分别为2000和1500个节点 在探索其他架构/下降算法/超参数调优之前,我尝试在tensorflow中复制这些结果。我做了一些研究,确定matlab fitnet函数使用tanh节点作为隐藏层,使用linear作为输出。此外,下降算法默认为levenberg-Marquardt,但也适用于其他(sgd)算法 似乎精度在0.2左右达到最大值,然后在连续的几

我正在尝试用TFLEARN编写一个模型,以适应16个参数

我以前在Matlab中使用“fitnet”函数运行过相同的实验,该函数有两个隐藏层,分别为2000和1500个节点

在探索其他架构/下降算法/超参数调优之前,我尝试在tensorflow中复制这些结果。我做了一些研究,确定matlab fitnet函数使用tanh节点作为隐藏层,使用linear作为输出。此外,下降算法默认为levenberg-Marquardt,但也适用于其他(sgd)算法

似乎精度在0.2左右达到最大值,然后在连续的几个时期内低于此值振荡。我在matlab中没有看到这种行为

我的TFLEARN代码如下所示:

tnorm = tflearn.initializations.uniform_scaling()

adam = tflearn.optimizers.Adam (learning_rate=0.1, beta1=0.9, beta2=0.999, epsilon=1e-08, use_locking=False, name='Adam')

#  network building
input_data = tflearn.input_data(shape=[None, np.shape(prepared_x)[1]])
fc1 = tflearn.fully_connected(input_data, 2000,activation='tanh',weights_init=tnorm)
fc2 = tflearn.fully_connected(fc1,1500,activation='tanh',weights_init=tnorm)
output = tflearn.fully_connected(fc2, 16, activation='linear',weights_init=tnorm)
network = tflearn.regression(output, optimizer=adam, loss='mean_square')

#define model with checkpoints
model = tflearn.DNN(network, tensorboard_dir='output/', tensorboard_verbose=3, checkpoint_path='output')

#Train Model
model.fit(prepared_x, prepared_t, n_epoch=5, batch_size=100,shuffle=True, show_metric=True, snapshot_epoch=False,validation_set=0.1 )

#save
model.save('TFLEARN_FC_final.tfl')
培训课程的输出如下所示:

tnorm = tflearn.initializations.uniform_scaling()

adam = tflearn.optimizers.Adam (learning_rate=0.1, beta1=0.9, beta2=0.999, epsilon=1e-08, use_locking=False, name='Adam')

#  network building
input_data = tflearn.input_data(shape=[None, np.shape(prepared_x)[1]])
fc1 = tflearn.fully_connected(input_data, 2000,activation='tanh',weights_init=tnorm)
fc2 = tflearn.fully_connected(fc1,1500,activation='tanh',weights_init=tnorm)
output = tflearn.fully_connected(fc2, 16, activation='linear',weights_init=tnorm)
network = tflearn.regression(output, optimizer=adam, loss='mean_square')

#define model with checkpoints
model = tflearn.DNN(network, tensorboard_dir='output/', tensorboard_verbose=3, checkpoint_path='output')

#Train Model
model.fit(prepared_x, prepared_t, n_epoch=5, batch_size=100,shuffle=True, show_metric=True, snapshot_epoch=False,validation_set=0.1 )

#save
model.save('TFLEARN_FC_final.tfl')

任何建议都将不胜感激。

对于未来的潜伏者,我通过修正下降算法解决了自己的问题

Adam优化器的默认学习速率是.001,但这太高了,我不得不切换到.005以进行收敛