function GreyscaleInput( config ) {

	// GreyscaleInput inherits from abstract layer "NativeLayer".

	NativeLayer.call( this, config );

	/**
	 * GreyscaleInput has two output dimensions: [ width, height ].
	 *
 	 * @type { int }
	 */

	this.width = undefined;
	this.height = undefined;

	/**
	 * This attribute not for output, for latter layer,
	 * for example, padding2d.
	 *
	 * @type { int }
	 */
	this.depth = 1;

	/**
	 * As GreyscaleInput is the first layer model, actualWidth is defined as a const.
	 * Use actualWidth to calculate actualHeight.
	 *
	 * @type { double }
	 */

	this.actualWidth = undefined;
	this.actualHeight = undefined;

	/**
	 * Calculate unitLength for latter layers.
	 *
	 * @type { double }
	 */

	this.unitLength = undefined;

	/**
	 * Set this attribute for latter layer,
	 * for example, padding2d.
	 *
	 * @type { Array }
	 */

	this.openFmCenters = [ {

		x: 0,
		y: 0,
		z: 0

	} ];

	/**
	 * Label to define whether layer need an "output value" from backend model (tfjs, keras, or tf).
	 * False means that user need to add value for GreyscaleInput when they are preprocessing multi-output for the model.
	 *
	 * @type { boolean }
	 */

	this.autoOutputDetect = false;

	this.closeable = false;

	this.layerDimension = 2;

	this.layerType = "GreyscaleInput";

}
This attribute not for output, for latter layer,
for example, padding2d.

@type { int }