Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
ModelZoo
ResNet50_tensorflow
Commits
2f2a04c7
Commit
2f2a04c7
authored
Dec 10, 2018
by
Toby Boyd
Browse files
Modify to work with perfzero framework.
parent
52ee9636
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
44 additions
and
65 deletions
+44
-65
official/resnet/keras/keras_cifar_benchmark.py
official/resnet/keras/keras_cifar_benchmark.py
+44
-65
No files found.
official/resnet/keras/keras_cifar_benchmark.py
View file @
2f2a04c7
"""Executes Keras benchmarks and accuracy tests."""
"""Executes Keras benchmarks and accuracy tests."""
from
__future__
import
print_function
from
__future__
import
print_function
import
os
import
os
import
sys
from
absl
import
app
as
absl_app
from
absl
import
flags
from
absl
import
flags
from
absl.testing
import
flagsaver
import
tensorflow
as
tf
# pylint: disable=g-bad-import-order
import
tensorflow
as
tf
# pylint: disable=g-bad-import-order
from
official.resnet
import
cifar10_main
as
cifar_main
from
official.resnet
import
cifar10_main
as
cifar_main
...
@@ -15,99 +13,80 @@ import official.resnet.keras.keras_cifar_main as keras_cifar_main
...
@@ -15,99 +13,80 @@ import official.resnet.keras.keras_cifar_main as keras_cifar_main
DATA_DIR
=
'/data/cifar10_data/'
DATA_DIR
=
'/data/cifar10_data/'
class
KerasCifar10BenchmarkTests
():
class
KerasCifar10BenchmarkTests
(
object
):
"""Benchmarks and accuracy tests for KerasCifar10."""
local_flags
=
None
def
__init__
(
self
,
output_dir
=
None
):
self
.
oss_report_object
=
None
self
.
output_dir
=
output_dir
def
keras_resnet56_1_gpu
(
self
):
def
keras_resnet56_1_gpu
(
self
):
"""Test keras based model with Keras fit and distribution strategies."""
self
.
_setup
()
self
.
_setup
()
flags
.
FLAGS
.
num_gpus
=
1
flags
.
FLAGS
.
num_gpus
=
1
flags
.
FLAGS
.
data_dir
=
DATA_DIR
flags
.
FLAGS
.
data_dir
=
DATA_DIR
flags
.
FLAGS
.
batch_size
=
128
flags
.
FLAGS
.
batch_size
=
128
flags
.
FLAGS
.
train_epochs
=
1
flags
.
FLAGS
.
train_epochs
=
1
82
flags
.
FLAGS
.
model_dir
=
self
.
_get_model_dir
(
'keras_resnet56_1_gpu'
)
flags
.
FLAGS
.
model_dir
=
self
.
_get_model_dir
(
'keras_resnet56_1_gpu'
)
flags
.
FLAGS
.
resnet_size
=
56
flags
.
FLAGS
.
resnet_size
=
56
flags
.
FLAGS
.
dtype
=
'fp32'
flags
.
FLAGS
.
dtype
=
'fp32'
stats
=
keras_cifar_main
.
run_cifar_with_keras
(
flags
.
FLAGS
)
stats
=
keras_cifar_main
.
run_cifar_with_keras
(
flags
.
FLAGS
)
report_info
=
{}
self
.
_fill_report_object
(
stats
)
results
=
[]
results
.
append
(
self
.
_create_result
(
stats
[
'accuracy_top_1'
].
item
(),
'top_1'
,
'quality'
))
results
.
append
(
self
.
_create_result
(
stats
[
'training_accuracy_top_1'
].
item
(),
'top_1_train_accuracy'
,
'quality'
))
report_info
[
'results'
]
=
results
return
report_info
def
keras_resnet56_4_gpu
(
self
):
def
keras_resnet56_4_gpu
(
self
):
"""Test keras based model with Keras fit and distribution strategies."""
self
.
_setup
()
flags
.
FLAGS
.
num_gpus
=
4
flags
.
FLAGS
.
num_gpus
=
4
flags
.
FLAGS
.
data_dir
=
DATA_DIR
flags
.
FLAGS
.
data_dir
=
self
.
_get_model_dir
(
'keras_resnet56_4_gpu'
)
flags
.
FLAGS
.
batch_size
=
128
flags
.
FLAGS
.
batch_size
=
128
flags
.
FLAGS
.
train_epochs
=
182
flags
.
FLAGS
.
train_epochs
=
182
flags
.
FLAGS
.
model_dir
=
''
flags
.
FLAGS
.
model_dir
=
''
flags
.
FLAGS
.
resnet_size
=
56
flags
.
FLAGS
.
resnet_size
=
56
flags
.
FLAGS
.
dtype
=
'fp32'
flags
.
FLAGS
.
dtype
=
'fp32'
keras_cifar_main
.
run_cifar_with_keras
(
flags
.
FLAGS
)
stats
=
keras_cifar_main
.
run_cifar_with_keras
(
flags
.
FLAGS
)
self
.
_fill_report_object
(
stats
)
def
keras_resnet56_no_dist_strat_1_gpu
(
self
):
def
keras_resnet56_no_dist_strat_1_gpu
(
self
):
"""Test keras based model with Keras fit but not distribution strategies."""
self
.
_setup
()
self
.
_setup
()
flags
.
dist_strat_off
=
True
flags
.
FLAGS
.
dist_strat_off
=
True
flags
.
FLAGS
.
num_gpus
=
1
flags
.
FLAGS
.
num_gpus
=
1
flags
.
FLAGS
.
data_dir
=
DATA_DIR
flags
.
FLAGS
.
data_dir
=
DATA_DIR
flags
.
FLAGS
.
batch_size
=
128
flags
.
FLAGS
.
batch_size
=
128
flags
.
FLAGS
.
train_epochs
=
1
flags
.
FLAGS
.
train_epochs
=
182
flags
.
FLAGS
.
model_dir
=
''
flags
.
FLAGS
.
model_dir
=
self
.
_get_model_dir
(
'keras_resnet56_no_dist_strat_1_gpu'
)
flags
.
FLAGS
.
resnet_size
=
56
flags
.
FLAGS
.
resnet_size
=
56
flags
.
FLAGS
.
dtype
=
'fp32'
flags
.
FLAGS
.
dtype
=
'fp32'
stats
=
keras_cifar_main
.
run_cifar_with_keras
(
flags
.
FLAGS
)
stats
=
keras_cifar_main
.
run_cifar_with_keras
(
flags
.
FLAGS
)
report_info
=
{}
self
.
_fill_report_object
(
stats
)
results
=
[]
results
.
append
(
self
.
_create_result
(
stats
[
'accuracy_top_1'
].
item
(),
def
_fill_report_object
(
self
,
stats
):
'top_1'
,
if
self
.
oss_report_object
:
'quality'
))
self
.
oss_report_object
.
top_1
=
stats
[
'accuracy_top_1'
].
item
()
self
.
oss_report_object
.
add_other_quality
(
stats
[
'training_accuracy_top_1'
]
results
.
append
(
self
.
_create_result
(
stats
[
'training_accuracy_top_1'
].
item
(),
.
item
(),
'top_1_train_accuracy'
,
'top_1_train_accuracy'
)
'quality'
))
else
:
raise
ValueError
(
'oss_report_object has not been set.'
)
report_info
[
'results'
]
=
results
return
report_info
def
_create_result
(
self
,
result
,
result_name
,
result_unit
):
res_dict
=
{}
res_dict
[
'result'
]
=
result
res_dict
[
'result_name'
]
=
result_name
res_dict
[
'result_unit'
]
=
result_unit
return
res_dict
def
_get_model_dir
(
self
,
folder_name
):
def
_get_model_dir
(
self
,
folder_name
):
return
os
.
path
.
join
(
'/workspace'
,
folder_name
)
return
os
.
path
.
join
(
self
.
output_dir
,
folder_name
)
def
_setup
(
self
):
def
_setup
(
self
):
tf
.
logging
.
set_verbosity
(
tf
.
logging
.
DEBUG
)
tf
.
logging
.
set_verbosity
(
tf
.
logging
.
DEBUG
)
keras_cifar_main
.
define_keras_cifar_flags
()
if
KerasCifar10BenchmarkTests
.
local_flags
is
None
:
cifar_main
.
define_cifar_flags
()
print
(
'Build Flags!!!!'
)
flags
.
FLAGS
([
'foo'
])
keras_cifar_main
.
define_keras_cifar_flags
()
cifar_main
.
define_cifar_flags
()
def
run_tests
(
self
,
test_list
):
# Loads flags to get defaults to then override.
keras_benchmark
=
KerasCifar10BenchmarkTests
()
flags
.
FLAGS
([
'foo'
])
if
test_list
:
saved_flag_values
=
flagsaver
.
save_flag_values
()
for
t
in
test_list
:
KerasCifar10BenchmarkTests
.
local_flags
=
saved_flag_values
getattr
(
self
,
t
)()
return
else
:
print
(
'Restore Flags'
)
print
(
'Running all tests'
)
flagsaver
.
restore_flag_values
(
KerasCifar10BenchmarkTests
.
local_flags
)
keras_benchmark
.
keras_resnet56_1_gpu
()
keras_benchmark
.
keras_resnet56_no_dist_strat_1_gpu
()
keras_benchmark
.
keras_resnet56_4_gpu
()
def
main
(
_
):
keras_benchmark
=
KerasCifar10BenchmarkTests
()
keras_benchmark
.
run_tests
([
'keras_resnet56_1_gpu'
])
if
__name__
==
'__main__'
:
tf
.
logging
.
set_verbosity
(
tf
.
logging
.
DEBUG
)
cifar_main
.
define_cifar_flags
()
absl_app
.
run
(
main
)
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment