Юлия - Эквивалент tf.layers.dense - PullRequest
0 голосов
/ 22 мая 2018

Существует ли в Юлии функция для создания плотного слоя?

Эквивалент функции tf.layers.dense в Python?

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
)

Ответы [ 2 ]

0 голосов
/ 23 мая 2018

Нет, модуль Layers в тензорном потоке Python является модулем contrib .Это означает (помимо прочего), что он обычно не будет доступен в привязке TensorFlow для любого языка, кроме Python (поскольку он не соответствует операции в libtensorflow.so.)

Однако плотные слоиТривиально реализуемо из первых принципов тензорного потока.

Простой плотный слой:

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

Таким образом, вы можете создать свою собственную плотную функцию, чтобы начать, что-то вроде

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

Это можно легко расширить, чтобы делать все, что вам нужно.

0 голосов
/ 23 мая 2018

Посмотрите на Dense в Flux.jl .Подробности читайте в README и документах, но они действуют очень похоже.

Flux.jl не TensorFlow, но является более новой библиотекой нейронной сети с чистым julia.

...