首页 > 解决方案 > Julia - tf.layers.dense 的等价物

问题描述

Julia 中是否存在创建密集层的函数?

相当于 Python 中的函数tf.layers.dense

tf.layers.dense(
    inputs,
    units,
    activation=None,
    use_bias=True,
    kernel_initializer=None,
    bias_initializer=tf.zeros_initializer(),
    kernel_regularizer=None,
    bias_regularizer=None,
    activity_regularizer=None,
    kernel_constraint=None,
    bias_constraint=None,
    trainable=True,
    name=None,
    reuse=None
)

标签: tensorflowneural-networkjulia

解决方案


不,python tensorflow 中的Layers 模块是一个contrib模块。这意味着(除其他外),它通常不会在 TensorFlow 绑定中用于除 Python 之外的任何语言(因为它不对应于 . 中的操作libtensorflow.so。)

然而,密集层可以从 tensorflow 中的第一原则轻松实现。

一个简单的密集层是:

using TensorFlow
@tf begin
    X=placeholder(Float32; shape=[-1, 10])

    W = get_variable((10, 100), Float32)
    b = get_variable(100, Float32)

    Y = nn.relu(X*W + b)
end

因此,您可以从那里构建自己的 Dense 函数来帮助您入门,例如

using TensorFlow: get_shape

function dense(inputs::Tensor, units::Int, activation=identity, name=randstring())
    in_dims = get_shape(inputs, 2)

    W = get_variable("W_$name", (in_dims, units), Float32)
    b = get_variable("b_$name", units, Float32)

    activation(inputs*W + b)
end

这可以很容易地扩展到做任何你需要的事情。


推荐阅读