Если вы будете использовать его с Tensorflow Transform , тогда я бы предложил следующие функции:
import tensorflow_data_validation as tfdv
from tensorflow.python.lib.io import file_io
from tensorflow_transform.tf_metadata import metadata_io
# Define file path
file_io.recursive_create_dir(OUTPUT_DIR)
schema_file = os.path.join(OUTPUT_DIR, 'schema.pbtxt')
# Write schema
tfdv.write_schema_text(schema, schema_file)
# Read schema with tfdv
schema = tfdv.load_schema_text(schema_file)
# Read schema with tensorflow_transform
schema = metadata_io.read_metadata(OUTPUT_DIR)
Вывод понятен человеку - аналогично JSON.Но если вы предпочитаете сохранить его в простом формате JSON , тогда вы можете использовать следующее:
from google.protobuf import json_format
from tensorflow.python.lib.io import file_io
from tensorflow_metadata.proto.v0 import schema_pb2
def write_schema(schema, output_path):
schema_text = json_format.MessageToJson(schema)
file_io.write_string_to_file(output_path, schema_text)
def load_schema(input_path):
schema_text = file_io.read_file_to_string(input_path)
schema = json_format.Parse(schema_text, schema_pb2.Schema())
return schema
или если вам не нужно, чтобы он был в удобочитаемом формате, вы можетеиспользуйте SerializeToString () и ParseFromString (data) для де / сериализации, как описано здесь .