有没有办法在 keras-tuner 中优化漏斗神经网络?

问题描述

我正在尝试使用 tensorflow + kerastuner 为回归问题中的深度神经网络调整超参数。这是我的代码


import pathlib
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import layers
from kerastuner.tuners import RandomSearch,Bayesianoptimization


dataset = pd.read_excel('C:\\Users\\giovanni\\Desktop\\dataset.xlsx')[0:300]

X=dataset.iloc[:,:-1]
y=dataset.iloc[:,-1]

def norm(x):
     return (x - np.mean(X,axis = 0)) /np.std(X,axis = 0)
X = norm(X)

def build_model(hp):
   model = keras.Sequential()
   for i in range(hp.Int('num_layers',2,30)):
       model.add(layers.Dense(units=hp.Int('units_' + str(i),min_value=256,max_value=512,step=256),activation='relu'))
    
   model.add(layers.Dense(1,activation='linear'))
   model.compile(
       optimizer=keras.optimizers.Adam(
           hp.Choice('learning_rate',[1e-2,1e-3,1e-4,1e-5],default = 1e-3)),loss='mean_absolute_error',metrics=['mean_absolute_error'])
   return model

我想要一个漏斗 DNN,而不是具有 256 或 512 个神经元的层,下一层具有与前一层或其一半相同数量的神经元。所以,我想要,例如,k 层有 512 个神经元,l 层有 256 个,m 层有 128 个等等。我也希望 k,l,m 被 kerastuner 优化。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)