【问题标题】:Java - train loaded tensorflow modelJava - 训练加载的张量流模型
【发布时间】:2017-09-22 04:10:27
【问题描述】:

有谁知道在将模型从 Tensorflow Python 加载到 Java 后是否可以继续训练模型? 我想出了这个sn-p的代码,但是没有用(是的,输出和输入一样)

for(int i = 0; i < 10000; i++) {
    Tensor cost = b.session().runner().feed("input", input).feed("output", input).fetch("cost").run().get(0);
    System.out.println(result1);
}

这是打印 10000 次的内容:

FLOAT tensor with shape []

毕竟,预测和以前一样。

此外,如果可以继续训练加载的模型,是否可以更新保存的模型的权重和偏差?

【问题讨论】:

    标签: java python machine-learning tensorflow protocol-buffers


    【解决方案1】:

    您正在输入输入并获取损失;这不会训练模型。为此,您需要提供批量数据并运行更新操作(可能从optimizer.minimize 返回)。

    从 Java 中可以做到这一点,但 python 中的基础设施更完善,包括预取队列中输入数据的线程、监控输入何时结束、保存摘要和进行分布式训练。

    【讨论】:

    • 好点,谢谢!您是否知道是否可以从 Java 更新保存的模型? SavedModelBundle 类没有任何功能,似乎与保存有关。也许是函数 metaGraphDef(),但我不确定它是否也包含变量或仅包含图形结构。而且我不知道如何使用 metaGraphDef 更新 ProtocolBuffer (pb) 保存的模型
    • 我认为你必须在java中重新实现python保存逻辑才能做到这一点。
    • 你能用 Java 训练模型吗?
    • 海。我停止了这个项目,但我认为使用 optimizer.minimize 可以训练模型
    猜你喜欢
    • 2021-12-04
    • 1970-01-01
    • 1970-01-01
    • 2020-02-29
    • 2021-12-24
    • 2023-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多