def benchmark_cnn_cifar10_bs_1024_gpu_2(self): """Measure performance with batch_size=1024, gpu=2 and distribution_strategy=`mirrored`. """ batch_size = 1024 metrics, wall_time, extras = benchmark_util.measure_performance( self._build_model, x=self.x_train, y=self.y_train, batch_size=batch_size, num_gpus=2, distribution_strategy='mirrored', epochs=self.epochs, optimizer=tf.keras.optimizers.RMSprop(learning_rate=0.0001, decay=1e-6), loss='categorical_crossentropy', metrics=['accuracy']) metadata = benchmark_util.get_keras_examples_metadata( 'cnn', batch_size) extras.update(metadata) self.report_benchmark(wall_time=wall_time, metrics=metrics, extras=extras)
def benchmark_antirectifier_bs_512(self): """Measure performance with batch_size=512.""" batch_size = 512 metrics, wall_time, extras = benchmark_util.measure_performance( self._build_model, x=self.x_train, y=self.y_train, batch_size=batch_size, optimizer="rmsprop", loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True), metrics=["sparse_categorical_accuracy"]) metadata = benchmark_util.get_keras_examples_metadata( "antirectifier", batch_size) extras.update(metadata) self.report_benchmark(wall_time=wall_time, metrics=metrics, extras=extras)
def benchmark_text_classification_bs_512(self): """Measure performance with batch_size=512.""" batch_size = 512 metrics, wall_time, extras = benchmark_util.measure_performance( self._build_model, x=self.imdb_x, y=self.imdb_y, batch_size=batch_size, optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy']) metadata = benchmark_util.get_keras_examples_metadata( 'transformer', batch_size) extras.update(metadata) self.report_benchmark(wall_time=wall_time, metrics=metrics, extras=extras)
def benchmark_hrnn_mnist_bs_1024(self): """Measure performance with batch_size=1024.""" batch_size = 1024 metrics, wall_time, extras = benchmark_util.measure_performance( self._build_model, x=self.x_train, y=self.y_train, batch_size=batch_size, optimizer='rmsprop', loss='categorical_crossentropy', metrics=['accuracy']) metadata = benchmark_util.get_keras_examples_metadata( 'hierarchical_rnn', batch_size) extras.update(metadata) self.report_benchmark(wall_time=wall_time, metrics=metrics, extras=extras)
def benchmark_bidirect_lstm_imdb_bs_512(self): """Measure performance with batch_size=512.""" batch_size = 512 metrics, wall_time, extras = benchmark_util.measure_performance( self._build_model, x=self.imdb_x, y=self.imdb_y, batch_size=batch_size, optimizer='adam', loss='binary_crossentropy', metrics=['accuracy']) metadata = benchmark_util.get_keras_examples_metadata( 'bidirectional_lstm', batch_size) extras.update(metadata) self.report_benchmark(wall_time=wall_time, metrics=metrics, extras=extras)
def benchmark_irnn_mnist_bs_512(self): """Measure performance with batch_size=512.""" batch_size = 512 metrics, wall_time, extras = benchmark_util.measure_performance( self._build_model, x=self.x_train, y=self.y_train, batch_size=batch_size, optimizer=tf.keras.optimizers.RMSprop( learning_rate=self.learning_rate), loss='categorical_crossentropy', metrics=['accuracy']) metadata = benchmark_util.get_keras_examples_metadata( 'irnn', batch_size) extras.update(metadata) self.report_benchmark(wall_time=wall_time, metrics=metrics, extras=extras)
def benchmark_mlp_reuters_bs_256(self): """Measure performance with batch_size=256.""" batch_size = 256 metrics, wall_time, extras = benchmark_util.measure_performance( self._build_model, x=self.x_train, y=self.y_train, batch_size=batch_size, epochs=self.epochs, optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy']) metadata = benchmark_util.get_keras_examples_metadata( 'mlp', batch_size) extras.update(metadata) self.report_benchmark(wall_time=wall_time, metrics=metrics, extras=extras)
def benchmark_custom_training_mnist_bs_512(self): """Measure performance with batch_size=512 and run_iters=10.""" batch_size = 512 run_iters = 5 train_dataset = self.train_dataset.shuffle( buffer_size=1024).batch(batch_size) # Instantiate a loss function. loss_fn = tf.keras.losses.CategoricalCrossentropy( reduction=tf.keras.losses.Reduction.NONE) # Instantiate an optimizer to train the model. optimizer = tf.keras.optimizers.Adam() model = self._build_model() metrics, wall_time = self.measure_performance(model, train_dataset, loss_fn, optimizer, batch_size, run_iters, self.epochs) extras = benchmark_util.get_keras_examples_metadata('conv', batch_size, '.keras.ctl_graph') self.report_benchmark( iters=run_iters, wall_time=wall_time, metrics=metrics, extras=extras)
def benchmark_custom_training_mnist_bs_512_gpu_2(self): """Measure performance with batch_size=512, run_iters=10, gpu=2 and distribution_strategy='mirrored'. """ batch_size = 512 run_iters = 10 train_dataset = self.train_dataset.shuffle( buffer_size=1024).batch(batch_size) distribution_strategy = 'mirrored' strategy = distribution_util.get_distribution_strategy( distribution_strategy=distribution_strategy, num_gpus=2) if distribution_strategy != 'off': train_dataset = strategy.experimental_distribute_dataset( train_dataset) strategy_scope = distribution_util.get_strategy_scope(strategy) with strategy_scope: # Instantiate a loss function. loss_fn = tf.keras.losses.CategoricalCrossentropy( reduction=tf.keras.losses.Reduction.NONE) # Instantiate an optimizer to train the model. optimizer = tf.keras.optimizers.Adam() model = self._build_model() metrics, wall_time = self.measure_performance(model, train_dataset, loss_fn, optimizer, batch_size, run_iters, self.epochs, strategy) extras = benchmark_util.get_keras_examples_metadata( 'conv', batch_size, '.keras.ctl_graph') self.report_benchmark(iters=run_iters, wall_time=wall_time, metrics=metrics, extras=extras)
def benchmark_mlp_reuters_bs_512_gpu_2(self): """Measure performance with batch_size=512, gpu=2 and distribution_strategy='mirrored' """ batch_size = 512 metrics, wall_time, extras = benchmark_util.measure_performance( self._build_model, x=self.x_train, y=self.y_train, batch_size=batch_size, num_gpus=2, distribution_strategy='mirrored', epochs=self.epochs, optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy']) metadata = benchmark_util.get_keras_examples_metadata( 'mlp', batch_size) extras.update(metadata) self.report_benchmark(wall_time=wall_time, metrics=metrics, extras=extras)