From e72f3b553f64f274078f30f64527d8655cf53c42 Mon Sep 17 00:00:00 2001 From: "Alinson S. Xavier" Date: Wed, 4 Aug 2021 13:44:42 -0500 Subject: [PATCH] Hdf5Sample: Use half-precision for floats --- miplearn/features/sample.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/miplearn/features/sample.py b/miplearn/features/sample.py index 0dd6005..65ddab5 100644 --- a/miplearn/features/sample.py +++ b/miplearn/features/sample.py @@ -249,6 +249,7 @@ class Hdf5Sample(Sample): self._assert_is_vector(value) for v in value: + # Convert strings to bytes if isinstance(v, str): value = np.array( [u if u is not None else b"" for u in value], @@ -256,6 +257,11 @@ class Hdf5Sample(Sample): ) break + # Convert all floating point numbers to half-precision + if isinstance(v, float): + value = np.array(value, dtype=np.dtype("f2")) + break + self._put(key, value, compress=True) @overrides @@ -269,6 +275,8 @@ class Hdf5Sample(Sample): continue if isinstance(v[0], str): data = np.array(padded, dtype="S") + elif isinstance(v[0], float): + data = np.array(padded, dtype=np.dtype("f2")) elif isinstance(v[0], bool): data = np.array(padded, dtype=bool) else: