# # 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)