From 45a2235d04012c4f0f29b68bcad39fe7d36446b8 Mon Sep 17 00:00:00 2001 From: "A. Unique TensorFlower" Date: Wed, 23 Sep 2020 22:40:53 -0700 Subject: [PATCH] Remove legacy unicode() support in Keras. PiperOrigin-RevId: 333447364 Change-Id: I33c1298f5dd7dcdd2cb6468d92162c7bb2cb1cf7 --- tensorflow/python/keras/callbacks.py | 2 ++ tensorflow/python/keras/engine/data_adapter.py | 9 ++++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/tensorflow/python/keras/callbacks.py b/tensorflow/python/keras/callbacks.py index c68508b9bba..b03539eaaa4 100644 --- a/tensorflow/python/keras/callbacks.py +++ b/tensorflow/python/keras/callbacks.py @@ -2566,6 +2566,8 @@ class CSVLogger(Callback): delimiter = self.sep fieldnames = ['epoch'] + self.keys + if six.PY2: + fieldnames = [unicode(x) for x in fieldnames] self.writer = csv.DictWriter( self.csv_file, diff --git a/tensorflow/python/keras/engine/data_adapter.py b/tensorflow/python/keras/engine/data_adapter.py index b89256a803d..7996cd31ea5 100644 --- a/tensorflow/python/keras/engine/data_adapter.py +++ b/tensorflow/python/keras/engine/data_adapter.py @@ -61,6 +61,13 @@ try: except ImportError: pd = None +try: + # In Python2 unicode is a scalar type + scalar_types = (float, int, str, unicode) +except NameError: + # In Python3 unicode is not present, it always uses string + scalar_types = (float, int, str) + @six.add_metaclass(abc.ABCMeta) class DataAdapter(object): @@ -610,7 +617,7 @@ class ListsOfScalarsDataAdapter(DataAdapter): @staticmethod def _is_list_of_scalars(inp): - if isinstance(inp, (float, int, str)): + if isinstance(inp, scalar_types): return True if isinstance(inp, (list, tuple)): return ListsOfScalarsDataAdapter._is_list_of_scalars(inp[0])