blob: 88857418f9e0f64c67a048d4fe526b5a8062983c [file] [log] [blame]
# Copyright 2019 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
load(
"//bindings/python:build_defs.oss.bzl",
"INTREE_TENSORFLOW_PY_DEPS",
"NUMPY_DEPS",
"iree_py_test",
)
package(
default_visibility = ["//visibility:public"],
licenses = ["notice"], # Apache 2.0
)
[
iree_py_test(
name = name,
srcs = [name + ".py"],
python_version = "PY3",
deps = INTREE_TENSORFLOW_PY_DEPS + NUMPY_DEPS + [
"//integrations/tensorflow/bindings/python/pyiree/tf/support",
],
)
for name in [
"broadcasting_test",
"batch_norm_test",
"fill_test",
"control_flow_test",
"dynamic_mlp_test",
"dynamic_mlp_relu_test",
"depth_conv_test",
"exported_names_test",
"gather_test",
"tensorlist_test",
"keras_lstm_test",
"mandelbrot_test",
"matrix_ops_test",
"resource_ops_test",
"ring_buffer_test",
"sliding_window_test",
"simple_arithmetic_test",
"simple_stateful_test",
"strings_test",
]
]
[
iree_py_test(
name = "_".join([
"keras_model_train",
optimizer_name,
backends,
"test",
]),
srcs = [
"keras_model_train_test.py",
],
args = [
"--optimizer_name=%s" % optimizer_name,
"--override_backends=%s" % backends,
],
main = "keras_model_train_test.py",
python_version = "PY3",
tags = [
"manual",
"noga",
"notap",
],
deps = INTREE_TENSORFLOW_PY_DEPS + NUMPY_DEPS + [
"//integrations/tensorflow/bindings/python/pyiree/tf/support",
],
)
for optimizer_name, backends in [
("sgd", "tf"),
("sgd", "tf,iree_vmla"),
("adam", "tf,iree_vmla"), # TODO(b/157581521)
]
]
[
iree_py_test(
name = "_".join([
"keras_vision_model",
data,
"top",
str(include_top),
model_name,
backends,
"test",
]),
size = "large",
srcs = [
"keras_vision_model_test.py",
],
args = [
"--model=%s" % model_name,
"--override_backends=%s" % backends,
"--data=%s" % data,
"--include_top=%d" % include_top,
],
main = "keras_vision_model_test.py",
python_version = "PY3",
tags = [
"manual",
],
deps = INTREE_TENSORFLOW_PY_DEPS + NUMPY_DEPS + [
"//integrations/tensorflow/bindings/python/pyiree/tf/support",
],
)
# ResNet50 test is hermetic - does not access any extrnal urls
# all other tests need real weights loaded from url
for data, include_top, model_name, backends in [
# "cifar10" has toy models with input 32x32, is good for debugging
("cifar10", 1, "ResNet50", "tf,iree_vmla"),
("cifar10", 1, "ResNet50", "tf,iree_llvmjit"),
("cifar10", 1, "ResNet50", "tf,iree_vulkan"),
]
]
# it requres access to external URL, so these tests will be run manually
[
iree_py_test(
name = "_".join([
"keras_vision_model",
data,
"top",
str(include_top),
model_name,
backends,
"test",
]),
srcs = [
"keras_vision_model_test.py",
],
args = [
"--model=%s" % model_name,
"--override_backends=%s" % backends,
"--data=%s" % data,
"--include_top=%d" % include_top,
"--url=https://storage.googleapis.com/iree_models/",
],
main = "keras_vision_model_test.py",
python_version = "PY3",
tags = [
"external",
"large",
"manual",
"noga",
"notap",
],
deps = INTREE_TENSORFLOW_PY_DEPS + NUMPY_DEPS + [
"//integrations/tensorflow/bindings/python/pyiree/tf/support",
],
)
# "cifar10" has toy models with input 32x32, is good for debugging
# "imagenet" has real model weights for input 224x224
for data, include_top, model_name, backends in [
("cifar10", 1, "MobileNet", "tf,iree_vmla"),
("cifar10", 1, "MobileNet", "tf,iree_vulkan"), # TODO(b/150244105)
("cifar10", 1, "MobileNet", "tf,iree_llvmjit"), # TODO(b/150244105)
("cifar10", 1, "MobileNetV2", "tf,iree_vmla"),
("cifar10", 1, "MobileNetV2", "tf,iree_vulkan"), # TODO(b/150244105)
("cifar10", 1, "MobileNetV2", "tf,iree_llvmjit"), # TODO(b/150244105)
("imagenet", 1, "ResNet50", "tf,iree_vmla"),
("imagenet", 1, "ResNet50", "tf,iree_vulkan"),
("imagenet", 1, "ResNet50", "tf,iree_llvmjit"),
("imagenet", 1, "MobileNet", "tf,iree_vmla"),
("imagenet", 1, "MobileNet", "tf,iree_vulkan"), # TODO(b/150244105)
("imagenet", 1, "MobileNet", "tf,iree_llvmjit"), # TODO(b/150244105)
("imagenet", 1, "MobileNetV2", "tf,iree_vmla"),
("imagenet", 1, "MobileNetV2", "tf,iree_vulkan"), # TODO(b/150244105)
("imagenet", 1, "MobileNetV2", "tf,iree_llvmjit"), # TODO(b/150244105)
]
]
[
iree_py_test(
name = name,
srcs = [name + ".py"],
python_version = "PY3",
# TODO(b/145815906) Get this running in OSS CI.
tags = ["noga"],
deps = INTREE_TENSORFLOW_PY_DEPS + NUMPY_DEPS + [
"//integrations/tensorflow/bindings/python/pyiree/tf/support",
],
)
for name in [
"conv_test",
"linspace_test",
"math_test",
# TODO(GH-1620): Re-enable this after fixing the failure on
# GitHub Actions.
"keras_lstm_static_test",
]
]
# It is used to produce weights for keras vision models with input image size 32x32.
# These models are not optimized for accuracy or latency (they are for debugging only).
# They have the same neural net topology
# with keras vision models trained on imagenet data sets
py_binary(
name = "train_vision_models_on_cifar",
srcs = [
"train_vision_models_on_cifar.py",
],
python_version = "PY3",
srcs_version = "PY2AND3",
deps = INTREE_TENSORFLOW_PY_DEPS + NUMPY_DEPS + [
"//integrations/tensorflow/bindings/python/pyiree/tf/support",
],
)