20. Python API

Remember to import the IPU API using:

from tensorflow.python import ipu

You cannot access the IPU API via the top-level tensorflow namespace. For example, this will not work:

import tensorflow as tf
cfg = tf.python.ipu.config.IPUConfig() ...

Note

tensorflow.python.ipu.ipu_strategy.IPUStrategy is an alias of tensorflow.python.ipu.ipu_strategy.IPUStrategyV1.

20.1. Datasets

20.2. Estimators

20.3. Keras

20.4. Keras layers

Note

tensorflow.python.ipu.keras.layers.GRU is an alias of tensorflow.python.ipu.keras.layers.PopnnGRU

tensorflow.python.ipu.keras.layers.LSTM is an alias of tensorflow.python.ipu.keras.layers.PopnnLSTM

20.5. Keras losses

20.6. Keras optimizers

20.7. Operators

It is also possible to access the operators via the tensorflow.python.ipu.ops namespace, for example: tensorflow.python.ipu.ops.normalization_ops.group_norm().

20.8. Optimisers

In addition to the tensorflow.python.ipu.optimizers namespace, it is also possible to access the optimizer classes via other namespaces, as shown in the following table:

Table 20.1 Optimizer namespaces

Optimizer

Alternative namespaces

AutomaticLossScalingOptimizer

tensorflow.python.ipu.automatic_loss_scaling_optimizer

tensorflow.python.ipu.optimizers.automatic_loss_scaling_optimizer

CrossReplicaOptimizer

tensorflow.python.ipu.cross_replica_optimizer

tensorflow.python.ipu.optimizers.cross_replica_optimizer

CrossReplicaGradientAccumulationOptimizer

tensorflow.python.ipu.gradient_accumulation_optimizer

tensorflow.python.ipu.optimizers.gradient_accumulation_optimizer

CrossReplicaGradientAccumulationOptimizerV2

tensorflow.python.ipu.gradient_accumulation_optimizer

tensorflow.python.ipu.optimizers.gradient_accumulation_optimizer

GradientAccumulationOptimizer

tensorflow.python.ipu.gradient_accumulation_optimizer

tensorflow.python.ipu.optimizers.gradient_accumulation_optimizer

GradientAccumulationOptimizerV2

tensorflow.python.ipu.gradient_accumulation_optimizer

tensorflow.python.ipu.optimizers.gradient_accumulation_optimizer

MapGradientOptimizer

tensorflow.python.ipu.map_gradient_optimizer

tensorflow.python.ipu.optimizers.map_gradient_optimizer

ShardedOptimizer

tensorflow.python.ipu.sharded_optimizer

tensorflow.python.ipu.optimizers.sharded_optimizer

Note

The ipu.optimizers optimizer classes can only be used with subclasses of tensorflow.compat.v1.train.Optimizer.

20.9. Sharding