82 lines
2.5 KiB
Python
82 lines
2.5 KiB
Python
#
|
|
# SPDX-FileCopyrightText: Copyright (c) 1993-2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
#
|
|
# 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
|
|
#
|
|
# http://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.
|
|
#
|
|
import os
|
|
import tempfile
|
|
|
|
import pytest
|
|
from polygraphy import constants, util
|
|
from polygraphy.backend.tf import (
|
|
GraphFromFrozen,
|
|
ModifyGraphOutputs,
|
|
SaveGraph,
|
|
graph_from_frozen,
|
|
)
|
|
from polygraphy.logger import G_LOGGER
|
|
from tests.helper import is_file_non_empty
|
|
from tests.models.meta import TF_MODELS
|
|
|
|
tf = pytest.importorskip("tensorflow")
|
|
|
|
|
|
class TestLoggerCallbacks:
|
|
@pytest.mark.parametrize("sev", G_LOGGER.SEVERITY_LETTER_MAPPING.keys())
|
|
def test_set_severity(self, sev):
|
|
G_LOGGER.module_severity = sev
|
|
|
|
|
|
class TestFrozenGraphLoader:
|
|
def test_load_graph(self):
|
|
with tf.compat.v1.Graph().as_default() as graph:
|
|
inp = tf.placeholder(shape=(1, 1, 1, 1), dtype=tf.float32)
|
|
out = tf.identity(inp)
|
|
|
|
graph, outputs = graph_from_frozen(graph)
|
|
assert graph
|
|
assert outputs
|
|
|
|
def test_load_pb(self):
|
|
tf_loader = GraphFromFrozen(TF_MODELS["identity"].path)
|
|
tf_loader()
|
|
|
|
|
|
class TestModifyGraph:
|
|
def test_layerwise(self):
|
|
load_frozen = GraphFromFrozen(TF_MODELS["identity"].path)
|
|
modify_tf = ModifyGraphOutputs(load_frozen, outputs=constants.MARK_ALL)
|
|
|
|
graph, outputs = modify_tf()
|
|
assert graph
|
|
assert outputs
|
|
|
|
|
|
class TestSaveGraph:
|
|
def test_save_pb(self):
|
|
with util.NamedTemporaryFile() as outpath:
|
|
tf_loader = SaveGraph(
|
|
GraphFromFrozen(TF_MODELS["identity"].path), path=outpath.name
|
|
)
|
|
tf_loader()
|
|
assert is_file_non_empty(outpath.name)
|
|
|
|
def test_save_tensorboard(self):
|
|
with tempfile.TemporaryDirectory() as outdir:
|
|
tf_loader = SaveGraph(
|
|
GraphFromFrozen(TF_MODELS["identity"].path), tensorboard_dir=outdir
|
|
)
|
|
tf_loader()
|
|
assert os.path.exists(tf_loader.tensorboard_dir)
|