无法通过使用自定义块复制自动keras模型

如何解决无法通过使用自定义块复制自动keras模型

我正在使用StructuredDataRegressor进行一些预测。我假设生成的“ oracle.json”描述了 模型架构和超参数,以找到最佳模型。这就是“ oracle.json”的相关部分所说的:

"values": {
  "structured_data_block_1/normalize": false,"structured_data_block_1/dense_block_1/num_layers": 2,"structured_data_block_1/dense_block_1/use_batchnorm": false,"structured_data_block_1/dense_block_1/dropout": 0,"structured_data_block_1/dense_block_1/units_0": 32,"structured_data_block_1/dense_block_1/units_1": 32,"regression_head_1/dropout": 0,"optimizer": "adam","learning_rate": 0.001,"structured_data_block_1/dense_block_1/units_2": 32
}

我该如何使用Blocks复制代码,这样我只需要使用这些值精确地训练一次?

这是我尝试过的一些东西。

请注意,我尝试的每种方法都是分别尝试的。我没有尝试一起运行所有这些代码。这里都在一起,所以我不必打开多个代码部分。

如果这些代码节中的任何一个都可以工作,请告诉我,我可以详细说明确切的失败或不正常的地方。

# I assume I always need this
input_node = ak.StructuredDatainput()

# Played around with StructuredDataBlock,but there is no way to
#   pass `num_layers`,`use_batchnorm`,`dropout` to the
#   DenseBlock that it internally uses.
output_node = ak.StructuredDataBlock(
    normalize=False,# **{
    #     "num_layers": 2,#     "use_batchnorm": False,#     "dropout": 0,# }
    # num_layers=2,# use_batchnorm=False,# dropout=0,)(input_node)

# Tried replicate what StructuredDataBlock is doing. It runs,#   but the resulting "oracle.json" does not look like the
#   original one,and it does not respect
#   `num_layers`,`dropout`.
output_node = ak.CategoricalToNumerical()(input_node)
output_node = ak.normalization()(output_node)
output_node = ak.DenseBlock(
    num_layers=2,use_batchnorm=False,dropout=0.0,)(output_node)

# Tried to use DenseBlock exactly the way it's used in
#   "StructuredDataBlock",but that also didn't work.
hp = HyperParameters()
output_node = input_node
block = ak.CategoricalToNumerical()
output_node = block.build(hp,output_node)
output_node = ak.DenseBlock().build(hp,output_node)

# This is the regression head,which I assume I will always need anyway.
output_node = ak.RegressionHead(
    loss=DimaLoss(),metrics=[LOSS_REGISTRY[self.loss_name]],)(output_node)

# AutoModel
auto_model = ak.AutoModel(
    project_name=PROJECT_NAME,directory=dima_trainer_dir,overwrite=True,max_trials=self.max_trials,inputs=input_node,outputs=output_node,objective=kerastuner.Objective(f"val_{self.loss_name}",direction="min"),)

# fit
auto_model.fit(
    x=df_train_X,y=df_train_y,epochs=self.epochs,callbacks=[early_stopping],validation_split=0.15,**{
        "batch_size": self.batch_size,# "optimizer": "adam",# "learning_rate": 0.002,},# optimizer="adam",# learning_rate=0.002,)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?