コード例 #1
0
    def setUp(self):
        self.log_dir = tempfile.mkdtemp()

        # We use numpy.random to generate images. We seed to avoid non-determinism
        # in this test.
        numpy.random.seed(42)

        # Create old-style image summaries for run "foo".
        tf.reset_default_graph()
        sess = tf.Session()
        placeholder = tf.placeholder(tf.uint8)
        tf.summary.image(name="baz", tensor=placeholder)
        merged_summary_op = tf.summary.merge_all()
        foo_directory = os.path.join(self.log_dir, "foo")
        writer = tf.summary.FileWriter(foo_directory)
        writer.add_graph(sess.graph)
        for step in xrange(2):
            writer.add_summary(sess.run(merged_summary_op,
                                        feed_dict={
                                            placeholder:
                                            (numpy.random.rand(1, 16, 42, 3) *
                                             255).astype(numpy.uint8)
                                        }),
                               global_step=step)
        writer.close()

        # Create new-style image summaries for run bar.
        tf.reset_default_graph()
        sess = tf.Session()
        placeholder = tf.placeholder(tf.uint8)
        summary.op(name="quux",
                   images=placeholder,
                   description="how do you pronounce that, anyway?")
        merged_summary_op = tf.summary.merge_all()
        bar_directory = os.path.join(self.log_dir, "bar")
        writer = tf.summary.FileWriter(bar_directory)
        writer.add_graph(sess.graph)
        for step in xrange(2):
            writer.add_summary(sess.run(merged_summary_op,
                                        feed_dict={
                                            placeholder:
                                            (numpy.random.rand(1, 6, 8, 3) *
                                             255).astype(numpy.uint8)
                                        }),
                               global_step=step)
        writer.close()

        # Start a server with the plugin.
        multiplexer = event_multiplexer.EventMultiplexer({
            "foo": foo_directory,
            "bar": bar_directory,
        })
        context = base_plugin.TBContext(logdir=self.log_dir,
                                        multiplexer=multiplexer)
        plugin = images_plugin.ImagesPlugin(context)
        wsgi_app = application.TensorBoardWSGIApp(self.log_dir, [plugin],
                                                  multiplexer,
                                                  reload_interval=0)
        self.server = werkzeug_test.Client(wsgi_app, wrappers.BaseResponse)
        self.routes = plugin.get_plugin_apps()
コード例 #2
0
 def setUp(self):
     super().setUp()
     (logdir, multiplexer) = self._create_data()
     provider = data_provider.MultiplexerDataProvider(multiplexer, logdir)
     ctx = base_plugin.TBContext(logdir=logdir, data_provider=provider)
     plugin = images_plugin.ImagesPlugin(ctx)
     wsgi_app = application.TensorBoardWSGI([plugin])
     self.server = werkzeug_test.Client(wsgi_app, wrappers.BaseResponse)
     self.routes = plugin.get_plugin_apps()
コード例 #3
0
  def setUp(self):
    self.log_dir = tempfile.mkdtemp()

    # We use numpy.random to generate images. We seed to avoid non-determinism
    # in this test.
    numpy.random.seed(42)

    # Create old-style image summaries for run "foo".
    tf.compat.v1.reset_default_graph()
    sess = tf.compat.v1.Session()
    placeholder = tf.compat.v1.placeholder(tf.uint8)
    tf.compat.v1.summary.image(name="baz", tensor=placeholder)
    merged_summary_op = tf.compat.v1.summary.merge_all()
    foo_directory = os.path.join(self.log_dir, "foo")
    with test_util.FileWriterCache.get(foo_directory) as writer:
      writer.add_graph(sess.graph)
      for step in xrange(2):
        writer.add_summary(sess.run(merged_summary_op, feed_dict={
            placeholder: (numpy.random.rand(1, 16, 42, 3) * 255).astype(
                numpy.uint8)
        }), global_step=step)

    # Create new-style image summaries for run bar.
    tf.compat.v1.reset_default_graph()
    sess = tf.compat.v1.Session()
    placeholder = tf.compat.v1.placeholder(tf.uint8)
    summary.op(name="quux", images=placeholder,
               description="how do you pronounce that, anyway?")
    merged_summary_op = tf.compat.v1.summary.merge_all()
    bar_directory = os.path.join(self.log_dir, "bar")
    with test_util.FileWriterCache.get(bar_directory) as writer:
      writer.add_graph(sess.graph)
      for step in xrange(2):
        writer.add_summary(sess.run(merged_summary_op, feed_dict={
            placeholder: (numpy.random.rand(1, 8, 6, 3) * 255).astype(
                numpy.uint8)
        }), global_step=step)

    # Start a server with the plugin.
    multiplexer = event_multiplexer.EventMultiplexer({
        "foo": foo_directory,
        "bar": bar_directory,
    })
    context = base_plugin.TBContext(
        logdir=self.log_dir, multiplexer=multiplexer)
    plugin = images_plugin.ImagesPlugin(context)
    # Setting a reload interval of -1 disables reloading. We disable reloading
    # because we seek to block tests from running til after one reload finishes.
    # This setUp method thus manually reloads the multiplexer. TensorBoard would
    # otherwise reload in a non-blocking thread.
    wsgi_app = application.TensorBoardWSGIApp(
        self.log_dir, [plugin], multiplexer, reload_interval=-1, path_prefix='')
    self.server = werkzeug_test.Client(wsgi_app, wrappers.BaseResponse)
    multiplexer.Reload()
    self.routes = plugin.get_plugin_apps()
コード例 #4
0
 def wrapper(self, *args, **kwargs):
     (logdir, multiplexer) = self._create_data()
     with self.subTest("bare multiplexer"):
         ctx = base_plugin.TBContext(logdir=logdir,
                                     multiplexer=multiplexer)
         plugin = images_plugin.ImagesPlugin(ctx)
         self._initialize_plugin_specific_attrs(plugin)
         fn(self, plugin, *args, **kwargs)
     with self.subTest("generic data provider"):
         flags = argparse.Namespace(generic_data="true")
         provider = data_provider.MultiplexerDataProvider(
             multiplexer, logdir)
         ctx = base_plugin.TBContext(
             flags=flags,
             logdir=logdir,
             multiplexer=multiplexer,
             data_provider=provider,
         )
         plugin = images_plugin.ImagesPlugin(ctx)
         self._initialize_plugin_specific_attrs(plugin)
         fn(self, plugin, *args, **kwargs)