6.6. Supported Ops

6.6.1. Ops with Limitations

6.6.1.1. Base Limitations

  • Output

    • Requires each output channel size <= 1024.

6.6.1.2. Blueoil Customized Ops

6.6.1.3. Tensorflow Ops with Limitations

  • tf.layers.AveragePooling2D

    • Currently, support only 2D.

    • Do not support kernel depth = 1.

  • tf.concat

    • Do not support concat of mixed data types (e.g., quantized values and float values).

    • All tensor channels must be equal.

    • If inputs are quantized, requires Each input channel size = multiple of 32.

  • tf.layers.Conv2D

    • Support only convolution 2D.

    • Do not support transpose.

    • Requires kernel size = 1x1 or 3x3 or 5x5.

      • Accelerator is not supported kernel size = 5x5 (CPU supported only).

    • Requires Input channel size = multiple of 32, otherwise zero padding is used.

    • If output is quantized by later operations, Output channel size = multiple of 32, otherwise output channel size is free from limitation (but performance will be worse).

  • tf.nn.depth_to_space

    • Requires depth of input = multiple of block_size^2 * 32.

  • tf.nn.fused_batch_norm

    • scale, offset, mean, variance, and epsilon must be constants or computable from constants.

  • tf.linalg.matmul

    • Do not support scalar.

  • tf.layers.max_pooling2d

    • Currently, support only 2D.

  • tf.pad

    • Supports only channel-wise paddings.

  • tf.nn.space_to_depth

    • Requires output depth = (multiple of block_size^2 * 32) or (block_size^2 * {8, 16}).

  • tf.split

    • Currently, all of output tensors must have same shape.

    • For quantized tensor, requires number of channel of each output tensor = multiple of 32.

6.6.2. Data Types

  • Floating point

    • tf.float32: 32-bit single-precision floating-point.