Настройка конфигурации для сверточного слоя в тензорном потоке js api 0.15.3 - PullRequest
0 голосов
/ 02 марта 2019

У меня есть CNN, который я создал в python, используя Keras API для тензорного потока, который я хочу реализовать в JavaScript.Но в tf для js API 0.15.3 я не могу найти варианты добавления шагов и отступов для сверточных слоев.

Мой код Python выглядит следующим образом.

X = Conv2D(64, (2, 2), strides = (1, 1), name = 'conv0')(X_input)

В Js API ref,

Функция tf.layers.conv2d (args) Источник

Слой 2D свертки (например, пространственная свертка над изображениями).

Этот слой создает ядро ​​свертки, котороесвернутый с входным слоем для получения тензора выходных данных.

Если для useBias установлено значение True, вектор смещения создается и добавляется к выходным данным.

Если активация не равна нулю, она применяется ка также выходные данные.

При использовании этого слоя в качестве первого слоя в модели укажите ключевое слово аргумент inputShape (Массив целых чисел, не включая ось выборки), например, inputShape = [128, 128, 3] для изображений RGB 128x128 в dataFormat = 'channelLast'.Параметры:

args (Объект)

filters (число) Размерность выходного пространства (то есть количество фильтров в свертке).

Действительно ценюесли кто-нибудь может помочь.Должен ли я использовать старый API, например 0.9.0

1 Ответ

0 голосов
/ 02 марта 2019

Только что выяснили, что, хотя они и не упомянули, что мы можем привести в качестве аргумента успехи и отступы.Мы действительно можем, согласно исходному коду.

constructor(rank: number, args: BaseConvLayerArgs) {
    super(args as LayerArgs);
    BaseConv.verifyArgs(args);
    this.rank = rank;
    if (this.rank !== 1 && this.rank !== 2) {
      throw new NotImplementedError(
          `Convolution layer for rank other than 1 or 2 (${this.rank}) is ` +
          `not implemented yet.`);
    }
    this.kernelSize = normalizeArray(args.kernelSize, rank, 'kernelSize');
    this.strides = normalizeArray(
        args.strides == null ? 1 : args.strides, rank, 'strides');
    this.padding = args.padding == null ? 'valid' : args.padding;
    checkPaddingMode(this.padding);
    this.dataFormat =
        args.dataFormat == null ? 'channelsLast' : args.dataFormat;
    checkDataFormat(this.dataFormat);
    this.activation = getActivation(args.activation);
    this.useBias = args.useBias == null ? true : args.useBias;
    this.biasInitializer =
        getInitializer(args.biasInitializer || this.DEFAULT_BIAS_INITIALIZER);
    this.biasConstraint = getConstraint(args.biasConstraint);
    this.biasRegularizer = getRegularizer(args.biasRegularizer);
    this.activityRegularizer = getRegularizer(args.activityRegularizer);
    this.dilationRate = normalizeArray(
        args.dilationRate == null ? 1 : args.dilationRate, rank,
        'dilationRate');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...