【问题标题】:How to connect a layer to multiple output layers in tiny-dnn?如何在 tiny-dnn 中将一个层连接到多个输出层?
【发布时间】:2018-01-21 04:58:14
【问题描述】:

我正在尝试为 Actor-Critic 方法构建一个网络,如 here 所述。具体来说,我正在尝试将带有 ReLU 激活的最后一个全连接层连接到两个输出层,用于策略和价值函数。但是我无法从文档中了解如何使用 tiny-dnn 的图形模型来做到这一点。

(见编辑)

我尝试了什么(这是错误的):

layers::input in(size_inputs);
layers::fc h1(size_inputs, size_hidden);
layers::fc h2(size_hidden, size_hidden);
layers::fc h3(size_hidden, size_hidden);
layers::fc h4(size_hidden, size_hidden);

layers::fc out_policy(size_hidden, size_ouputs);
layers::fc out_value(size_hidden, 1);

activation::leaky_relu activation_h;
activation::softmax activation_out_policy;
layers::linear activation_out_value(1);

auto &t1 = in << h1 << activation_h;
auto &t2 = t1 << h2 << activation_h;
auto &t3 = t2 << h3 << activation_h;
auto &t4 = t3 << h4 << activation_h;
auto &t5 = t4 << (out_policy,out_value);

construct_graph(m_network, {&in}, {&out_policy, &out_value});

(在最后一次调用 out_shape()[head_index];”处出现连接函数中的“向量下标超出范围”错误)

编辑:哦,我是个白痴,但文档可以提供更完整的示例...首先,网络组件的生命周期应该与网络本身的生命周期相同 - 这并不明显。其次,这在一定程度上确实有效。它构建了一个在运行时产生两个输出的网络,但是 softmax 输出全错了——它返回负数。

auto &t1 = in << h1 << activation_h;
auto &t2 = t1 << h2 << activation_h;
auto &t3 = t2 << h3 << activation_h;
auto &t4 = t3 << h4 << activation_h;
auto &t5 = t4 << out_policy;
auto &t6 = t4 << out_value;

construct_graph(m_network, {&in}, {&out_policy, &out_value});

【问题讨论】:

    标签: tiny-dnn


    【解决方案1】:

    好的,答案其实就在问题中:将两个输出添加到网络的正确方法是:

    out_policy << activation_out_policy;
    out_value << activation_out_value;
    
    auto& t = in 
        << h1 << activation_h1 
        << h2 << activation_h2 
        << h3 << activation_h3
        << h4 << activation_h4;
    t << out_value;
    t << out_policy;
    
    construct_graph(m_network, {&in}, {&activation_out_policy, &activation_out_value});
    

    当然,您必须使用激活层调用construct_graph,而不是像我所做的那样使用求和层。

    【讨论】:

      猜你喜欢
      • 2020-09-20
      • 2017-04-13
      • 1970-01-01
      • 2021-11-19
      • 2019-05-04
      • 1970-01-01
      • 2022-01-08
      • 2017-02-08
      • 2019-02-20
      相关资源
      最近更新 更多