在张量流js api 0.15.3中设置卷积层的配置

问题描述 投票:0回答:1

我有一个CNN,我在python中使用keras API on tensorflow,我想在JavaScript中实现。但是对于js API 0.15.3的tf,我找不到为卷积层添加步幅和填充的选项。

我的Python代码看起来像这样。

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

在Js API ref。

tf.layers.conv2d(args)函数源

2D卷积层(例如,图像上的空间卷积)。

该层创建一个卷积内核,该卷内核与层输入卷积以产生一个输出张量。

如果useBias为True,则创建偏置向量并将其添加到输出。

如果激活不为null,则它也会应用于输出。

将此图层用作模型中的第一个图层时,请提供关键字参数inputShape(整数数组,不包括示例轴),例如inputShape = [128,128,3],用于dataFormat ='channelsLast'中的128x128 RGB图片。参数:

args(对象)

filters(number)输出空间的维数(即卷积中的滤波器数)。

如果有人能提供帮助,真的很感激。我应该使用像0.9.0这样的旧API吗?

javascript python tensorflow keras deep-learning
1个回答
0
投票

刚刚发现即使他们没有提到我们可以提供步幅和填充作为参数。我们实际上可以,根据源代码。

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');
© www.soinside.com 2019 - 2024. All rights reserved.