From a369709169f8eeb10d2d4573d8cc4de4a2b7b772 Mon Sep 17 00:00:00 2001 From: haukurb Date: Tue, 10 Jul 2018 16:19:49 +0000 Subject: [PATCH] Fixed wrong configuration.json example in README.md, fixed missing d3 error, fixed json serialization error --- tensor2tensor/insights/README.md | 8 +++---- .../polymer/explore_view/explore-view.html | 1 + tensor2tensor/insights/server.py | 22 ++++++++++++++++++- 3 files changed, 26 insertions(+), 5 deletions(-) diff --git a/tensor2tensor/insights/README.md b/tensor2tensor/insights/README.md index 014bfca81..65ca95d59 100644 --- a/tensor2tensor/insights/README.md +++ b/tensor2tensor/insights/README.md @@ -42,14 +42,14 @@ Start guide, a sample configuration would be: "hparams": "", "hparams_set": "transformer_base_single_gpu", "problem": "translate_ende_wmt32k" - }, - }] + } + }], "language": [{ "code": "en", - "name": "English", + "name": "English" },{ "code": "de", - "name": "German", + "name": "German" }] } ``` diff --git a/tensor2tensor/insights/polymer/explore_view/explore-view.html b/tensor2tensor/insights/polymer/explore_view/explore-view.html index f74715016..9d40ea551 100644 --- a/tensor2tensor/insights/polymer/explore_view/explore-view.html +++ b/tensor2tensor/insights/polymer/explore_view/explore-view.html @@ -150,5 +150,6 @@

Rapid Response

on-response="handleTranslationResponse_"> + diff --git a/tensor2tensor/insights/server.py b/tensor2tensor/insights/server.py index 54421db58..c0a1f7089 100644 --- a/tensor2tensor/insights/server.py +++ b/tensor2tensor/insights/server.py @@ -20,6 +20,8 @@ from flask import jsonify from flask import request from flask import send_from_directory +from flask.json import JSONEncoder +import numpy as np from gunicorn.app.base import BaseApplication from gunicorn.six import iteritems from tensor2tensor.insights import transformer_model @@ -36,6 +38,23 @@ "Path to static javascript and html files to serve.") +_NUMPY_INT_DTYPES = [ + np.int8, np.int16, np.int32, np.int64 +] +_NUMPY_FP_DTYPES = [ + np.float16, np.float32, np.float64 +] +class NumpySerializationFix(JSONEncoder): + """json module cannot serialize numpy datatypes, reinterpret them first""" + def default(self, obj): + obj_type = type(obj) + if obj_type in _NUMPY_INT_DTYPES: + return int(obj) + if obj_type in _NUMPY_FP_DTYPES: + return float(obj) + return json.JSONEncoder.default(self, obj) + + class DebugFrontendApplication(BaseApplication): """A local custom application for GUnicorns. @@ -100,6 +119,7 @@ def main(_): __name__.split(".")[0], static_url_path="/polymer", static_folder=FLAGS.static_path) + app.json_encoder = NumpySerializationFix # Disable static file caching. app.config["SEND_FILE_MAX_AGE_DEFAULT"] = 0 @@ -112,7 +132,7 @@ def language_list(): # pylint: disable=unused-variable JSON for the languages. """ return jsonify({ - "language": languages.values() + "language": list(languages.values()) }) @app.route("/api/list_models/")