GoogleCloudPlatform/appengine-tensorboard

Name: appengine-tensorboard

Owner: Google Cloud Platform

Description: null

Created: 2016-11-14 21:51:19.0

Updated: 2018-04-17 15:16:11.0

Pushed: 2017-08-07 23:53:01.0

Homepage: null

Size: 12

Language: Shell

GitHub Committers

UserMost Recent Commit# Commits

Other Committers

UserEmailMost Recent Commit# Commits

README

Run Tensorboard on Google App Engine

Google App Engine can provide an easy way to get a persistent Tensorboard server with authentication for a small cost.

In addition if you find yourself pulling a large amount of data from GCS when starting up Tensorboard servers, you may actually pay less for a persistent GAE server, since you don't pay for data egress between GCS and GAE.

Setup

Setup assumes you have installed the Google Cloud SDK and have a billing enabled, Google Cloud Platform project.

  1. Write a configuration file for the OAuth2 proxy that sits in front of your tensorboard server. See the oauth2_proxy docs for instructions. This may require creating an OAuth2 client ID for your chosen provider. oauth2_proxy supports authentication with Google, Github, Facebook, Azure, GitLab, and MyUSA.

  2. Upload your configuration file to GCS:

    il cp oauth2_proxy.cfg gs://$BUCKET/oauth2_proxy.cfg
    
  3. Write an app.yaml file with runtime: custom to configure your application. Full reference here. In the env_variables section you must specify 3 environment variables:

  4. GCS_PROXY_CONFIG The fully qualified path to the configuration file you uploaded in step 2.

  5. EVENT_FILE_PATH The fully qualified GCS Path for your Tensorboard summary files.

  6. RELOAD_INTERVAL Frequency (in seconds) to poll GCS for new summary files.

Note that reloading data directly from GCS might cause a lot of API requests and incur high costs, so do not use the strategy of directly reading from GCS if you use it for more than a few hundreds of log files. This is due to inefficient way GCS direct access is working currently as described in https://github.com/tensorflow/tensorboard/issues/158

For more frequent reloads/bigger number of log files, syncing the GCS data to local folder using gsutil rsync and loading the data from local folder seems to be a better strategy.

  1. Deploy your GAE app.
    ud app deploy app.yaml --image-url=gcr.io/google-samples/appengine-tensorboard:latest
    

This work is supported by the National Institutes of Health's National Center for Advancing Translational Sciences, Grant Number U24TR002306. This work is solely the responsibility of the creators and does not necessarily represent the official views of the National Institutes of Health.