def testPluginTagToContent_PluginsCannotJumpOnTheBandwagon(self):
        # If there are multiple `SummaryMetadata` for a given tag, and the
        # set of plugins in the `plugin_data` of second is different from
        # that of the first, then the second set should be ignored.
        logdir = self.get_temp_dir()
        summary_metadata_1 = tf.SummaryMetadata(
            display_name='current tagee',
            summary_description='no',
            plugin_data=[
                tf.SummaryMetadata.PluginData(plugin_name='outlet',
                                              content='120v')
            ])
        self._writeMetadata(logdir, summary_metadata_1, nonce='1')
        acc = ea.EventAccumulator(logdir)
        acc.Reload()
        summary_metadata_2 = tf.SummaryMetadata(
            display_name='tagee of the future',
            summary_description='definitely not',
            plugin_data=[
                tf.SummaryMetadata.PluginData(plugin_name='plug',
                                              content='110v')
            ])
        self._writeMetadata(logdir, summary_metadata_2, nonce='2')
        acc.Reload()

        self.assertEqual(acc.PluginTagToContent('outlet'),
                         {'you_are_it': '120v'})
        with six.assertRaisesRegex(self, KeyError, 'plug'):
            acc.PluginTagToContent('plug')
    def printLastLayer(self, lastLayer, test_data_readable_input, output,
                       variable_writer):

        input = test_data_readable_input['X_test']

        with open(
                "Data_Set/" + FLAGS.dataset_name + "/" +
                str(FLAGS.network_node) + "-node/matriceShortestPath.txt",
                'rb') as f:
            resultMatrix = pickle.load(f)

        for i in range(0, 50):
            str_result = " Input " + str(i) + " " + str(input[i]) + "\n"

            summary = tf.Summary()
            text_tensor = tf.make_tensor_proto(str_result, dtype=tf.string)
            meta = tf.SummaryMetadata()
            meta.plugin_data.plugin_name = "text"
            summary.value.add(tag=str(i) + " Input ",
                              metadata=meta,
                              tensor=text_tensor)
            variable_writer.add_summary(summary, i)

            source = int(input[i][FLAGS.network_link])
            destination = int(input[i][FLAGS.network_link + 1])

            str_result = " Output :" + str(i) + " " + str(
                output[i]) + "\n paths : " + str(
                    resultMatrix[traffic_s_d_to_index(source, destination)])

            summary = tf.Summary()
            text_tensor = tf.make_tensor_proto(str_result, dtype=tf.string)
            meta = tf.SummaryMetadata()
            meta.plugin_data.plugin_name = "text"
            summary.value.add(tag=str(i) + " Output ",
                              metadata=meta,
                              tensor=text_tensor)
            variable_writer.add_summary(summary, i)

            str_result = " Last Layer " + str(i) + " " + str(
                lastLayer[i]) + "\n\n\n "

            summary = tf.Summary()
            text_tensor = tf.make_tensor_proto(str_result, dtype=tf.string)
            meta = tf.SummaryMetadata()
            meta.plugin_data.plugin_name = "text"
            summary.value.add(tag=str(i) + " Last Layer ",
                              metadata=meta,
                              tensor=text_tensor)
            variable_writer.add_summary(summary, i)
Ejemplo n.º 3
0
def create_summary_metadata(display_name, description, num_thresholds):
    """Create a `tf.SummaryMetadata` proto for pr_curves plugin data.

  Arguments:
    display_name: The display name used in TensorBoard.
    description: The description to show in TensorBoard.
    num_thresholds: The number of thresholds to use for PR curves.

  Returns:
    A `tf.SummaryMetadata` protobuf object.
  """
    pr_curve_plugin_data = plugin_data_pb2.PrCurvePluginData(
        version=PROTO_VERSION, num_thresholds=num_thresholds)
    content = pr_curve_plugin_data.SerializeToString()
    if USE_TF:
        return tf.SummaryMetadata(
            display_name=display_name,
            summary_description=description,
            plugin_data=tf.SummaryMetadata.PluginData(plugin_name=PLUGIN_NAME,
                                                      content=content))
    else:
        return summary_pb2.SummaryMetadata(
            display_name=display_name,
            summary_description=description,
            plugin_data=summary_pb2.SummaryMetadata.PluginData(
                plugin_name=PLUGIN_NAME, content=content))
def custom_summary(text, tag):
    text_tensor = tf.make_tensor_proto(text, dtype=tf.string)
    meta = tf.SummaryMetadata()
    meta.plugin_data.plugin_name = "text"
    summary = tf.Summary()
    summary.value.add(tag=tag, metadata=meta, tensor=text_tensor)
    return summary
Ejemplo n.º 5
0
def op(name, data, display_name=None, description=None, collections=None):
    """Create a TensorFlow summary op for a rank-2 `Tensor`.

    Args:
        name: A unique name for the generated summary node.
        data: A real numeric rank-2 `Tensor`. Must have `dtype` castable to
            `tf.float64`.
        display_name: Optional name for this summary in TensorBoard, as a
            constant `str`. Defaults to `name`.
        description: Optional long-form description for this summary, as a
            constant `str`. Markdown is supported. Defaults to empty.
        collections: Optional list of graph collections to add the summary
            op to. Defaults to `['summaries']`.

    Returns:
        A TensorFlow summary op.

    """
    if display_name is None:
        display_name = name

    summary_metadata = tf.SummaryMetadata(
        display_name=display_name,
        summary_description=description,
        plugin_data=tf.SummaryMetadata.PluginData(plugin_name=PLUGIN_NAME)
    )

    with tf.control_dependencies([tf.assert_rank(data, 2)]):
        return tf.summary.tensor_summary(
            name=name,
            tensor=tf.cast(data, tf.float64),
            summary_metadata=summary_metadata,
            collections=collections
        )
Ejemplo n.º 6
0
def add_model_metadata(logdir, directory_path, flags, properties):
    summary_writer = tf.summary.FileWriter(logdir)
    meta = tf.SummaryMetadata()
    meta.plugin_data.plugin_name = "text"
    summary = tf.Summary()
    overview = get_model_overview(directory_path)
    hyper_params = get_hyper_parameters(flags, properties)
    gan_summary = get_gan_summary()

    write_to_file(logdir, overview, hyper_params, gan_summary, flags)
    summary.value.add(tag="1_Overview",
                      metadata=meta,
                      tensor=tf.make_tensor_proto(overview, dtype=tf.string))
    summary.value.add(tag="2_Hyperparameters",
                      metadata=meta,
                      tensor=tf.make_tensor_proto(hyper_params,
                                                  dtype=tf.string))
    summary.value.add(tag="3_Model",
                      metadata=meta,
                      tensor=tf.make_tensor_proto(gan_summary,
                                                  dtype=tf.string))
    summary_writer.add_summary(summary)
    summary_writer.flush()
    summary_writer.close()
    tf.logging.info("Saved meta data in {}".format(logdir.replace(
        "\\", "\\\\")))
Ejemplo n.º 7
0
def pb(tag, guest, display_name=None, description=None):
    """Create a greeting summary for the given guest.

  Arguments:
    tag: The string tag associated with the summary.
    guest: The string name of the guest to greet.
    display_name: If set, will be used as the display name in
      TensorBoard. Defaults to `tag`.
    description: A longform readable description of the summary data.
      Markdown is supported.
    """
    message = 'Hello, %s!' % guest
    tensor = tf.make_tensor_proto(message, dtype=tf.string)

    # We have no metadata to store, but we do need to add a plugin_data entry
    # so that we know this summary is associated with the greeter plugin.
    # We could use this entry to pass additional metadata other than the
    # PLUGIN_NAME by using the content parameter.
    summary_metadata = tf.SummaryMetadata(
        display_name=display_name,
        summary_description=description,
        plugin_data=tf.SummaryMetadata.PluginData(plugin_name=PLUGIN_NAME))

    summary = tf.Summary()
    summary.value.add(tag=tag, metadata=summary_metadata, tensor=tensor)
    return summary
Ejemplo n.º 8
0
def op(name, value, display_name=None, description=None, collections=None):
    """Create a TensorFlow summary op to record data associated with a particular the given guest.

    Arguments:
      name: A name for this summary operation.
      guest: A rank-0 string `Tensor`.
      display_name: If set, will be used as the display name
        in TensorBoard. Defaults to `name`.
      description: A longform readable description of the summary data.
        Markdown is supported.
      collections: Which TensorFlow graph collections to add the summary
        op to. Defaults to `['summaries']`. Can usually be ignored.
    """

    # The `name` argument is used to generate the summary op node name.
    # That node name will also involve the TensorFlow name scope.
    # By having the display_name default to the name argument, we make
    # the TensorBoard display clearer.
    if display_name is None:
        display_name = name

    # We could pass additional metadata other than the PLUGIN_NAME within the
    # plugin data by using the content parameter, but we don't need any metadata
    # for this simple example.
    summary_metadata = tf.SummaryMetadata(
        display_name=display_name,
        summary_description=description,
        plugin_data=tf.SummaryMetadata.PluginData(plugin_name=PLUGIN_NAME))

    # Return a summary op that is properly configured.
    return tf.summary.tensor_summary(name,
                                     value,
                                     summary_metadata=summary_metadata,
                                     collections=collections)
Ejemplo n.º 9
0
def op(name, guest, display_name=None, description=None, collections=None):
    """Create a TensorFlow summary op to greet the given guest.

  Arguments:
    name: A name for this summary operation.
    guest: A rank-0 string `Tensor`.
    display_name: If set, will be used as the display name
      in TensorBoard. Defaults to `name`.
    description: A longform readable description of the summary data.
      Markdown is supported.
    collections: Which TensorFlow graph collections to add the summary
      op to. Defaults to `['summaries']`. Can usually be ignored.
  """

    # The `name` argument is used to generate the summary op node name.
    # That node name will also involve the TensorFlow name scope.
    # By having the display_name default to the name argument, we make
    # the TensorBoard display clearer.
    if display_name is None:
        display_name = name

    summary_metadata = tf.SummaryMetadata()
    # We could put additional metadata other than the PLUGIN_NAME,
    # but we don't need any metadata for this simple example.
    summary_metadata.plugin_data.add(plugin_name=PLUGIN_NAME, content="")
    message = tf.string_join(['Hello, ', guest, '!'])
    # Return a summary op that is properly configured.
    return tf.summary.tensor_summary(name,
                                     message,
                                     display_name=display_name,
                                     summary_metadata=summary_metadata,
                                     summary_description=description,
                                     collections=collections)
Ejemplo n.º 10
0
 def test_session_start_pb(self):
     start_time_secs = 314160
     session_start_info = plugin_data_pb2.SessionStartInfo(
         model_uri="//model/uri",
         group_name="session_group",
         start_time_secs=start_time_secs)
     session_start_info.hparams["param1"].string_value = "string"
     session_start_info.hparams["param2"].number_value = 5.0
     session_start_info.hparams["param3"].bool_value = False
     self.assertEqual(
         summary.session_start_pb(hparams={
             "param1": "string",
             "param2": 5,
             "param3": False
         },
                                  model_uri="//model/uri",
                                  group_name="session_group",
                                  start_time_secs=start_time_secs),
         tf.Summary(value=[
             tf.Summary.Value(
                 tag="_hparams_/session_start_info",
                 metadata=tf.SummaryMetadata(
                     plugin_data=tf.SummaryMetadata.PluginData(
                         plugin_name="hparams",
                         content=(plugin_data_pb2.HParamsPluginData(
                             version=0,
                             session_start_info=session_start_info).
                                  SerializeToString()))))
         ]))
Ejemplo n.º 11
0
def create_summary_metadata(display_name, description):
  content = HistogramMetadata()
  metadata = tf.SummaryMetadata(display_name=display_name,
                                summary_description=description)
  metadata.plugin_data.add(plugin_name=PLUGIN_NAME,
                           content=json.dumps(content._asdict()))  # pylint: disable=protected-access
  return metadata
Ejemplo n.º 12
0
    def _architecture_metric_fn(**kwargs):
        """Manually creates the tf.metric with a serialized tf.Summary proto."""

        del kwargs  # Unused.

        # TODO: Should architecture.subnetworks be sorted by iteration
        # number first? Or perhaps, to make this more general, to have one line for
        # each iteration, with "|" as a delimiter if there are multiple subnetworks
        # in one iteration? Something like:
        # 0 linear
        # 1 dnn_width_32_depth_1 | dnn_width_64_depth_1
        # 2
        # 3 dnn_with_32_depth_2
        architecture_ = " | ".join(
            [name for _, name in architecture.subnetworks])
        architecture_ = "| {} |".format(architecture_)
        summary_metadata = tf.SummaryMetadata(
            plugin_data=tf.SummaryMetadata.PluginData(plugin_name="text"))
        summary_proto = tf.summary.Summary()
        summary_proto.value.add(metadata=summary_metadata,
                                tag="architecture/adanet",
                                tensor=tf.make_tensor_proto(architecture_,
                                                            dtype=tf.string))
        architecture_summary = tf.convert_to_tensor(
            summary_proto.SerializeToString(), name="architecture")
        return {
            "architecture/adanet/ensembles": (architecture_summary, tf.no_op())
        }
Ejemplo n.º 13
0
def log_text(writer, tag, text):
    text_tensor = tf.make_tensor_proto(text, dtype=tf.string)
    meta = tf.SummaryMetadata()
    meta.plugin_data.plugin_name = "text"
    summary = tf.Summary()
    summary.value.add(tag=tag, metadata=meta, tensor=text_tensor)
    writer.add_summary(summary)
Ejemplo n.º 14
0
def pb(tag, guest, display_name=None, description=None):
  """Create a greeting summary for the given guest.

  Arguments:
    tag: The string tag associated with the summary.
    guest: The string name of the guest to greet.
    display_name: If set, will be used as the display name in
      TensorBoard. Defaults to `tag`.
    description: A longform readable description of the summary data.
      Markdown is supported.
    """
  message = 'Hello, %s!' % guest
  tensor = tf.make_tensor_proto(message, dtype=tf.string)

  summary_metadata = tf.SummaryMetadata(display_name=display_name,
                                        summary_description=description)
  metadata_content = '{}'  # We have no metadata to store.
  summary_metadata.plugin_data.add(plugin_name=PLUGIN_NAME,
                                   content=metadata_content)

  summary = tf.Summary()
  summary.value.add(tag=tag,
                    metadata=summary_metadata,
                    tensor=tensor)
  return summary
Ejemplo n.º 15
0
 def text_summary(self, text=''):
     text_tensor = tf.make_tensor_proto(text, dtype=tf.string)
     meta = tf.SummaryMetadata()
     meta.plugin_data.plugin_name = "text"
     summary = tf.Summary()
     summary.value.add(tag="Description", metadata=meta, tensor=text_tensor)
     self.writer.add_summary(summary)
Ejemplo n.º 16
0
 def log_markdown(self, tag: str, text_in_markdown: str, step: int):
     text_tensor = tf.make_tensor_proto(text_in_markdown, dtype=tf.string)
     meta = tf.SummaryMetadata()
     meta.plugin_data.plugin_name = "text"
     summary = tf.Summary()
     summary.value.add(tag=tag, metadata=meta, tensor=text_tensor)
     self._summary_writer.add_summary(summary, step)
Ejemplo n.º 17
0
def pb(tag, data, display_name=None, description=None):
    """Create a summary for the given matrix.

    Args:
        tag: A unique name for the generated summary.
        data: A `np.array` or array-like form with rank 2. Must have type
            castable to `np.float64`.
        display_name: Optional name for this summary in TensorBoard, as a
            `str`. Defaults to `name`.
        description: Optional long-form description for this summary, as a
            `str`. Markdown is supported. Defaults to empty.

    Returns:
        A `tf.Summary` protobuf object.

    """
    data = np.array(data).astype(np.float64)
    tensor = tf.make_tensor_proto(data, dtype=tf.float64)

    if display_name is None:
        display_name = tag

    summary_metadata = tf.SummaryMetadata(
        display_name=display_name,
        summary_description=description,
        plugin_data=tf.SummaryMetadata.PluginData(plugin_name=PLUGIN_NAME)
    )
    summary = tf.Summary()
    summary.value.add(tag=tag, metadata=summary_metadata, tensor=tensor)
    return summary
Ejemplo n.º 18
0
def pinnboard_summary(params,
                      display_name=None,
                      description=None,
                      collections=None):
    """Create a TensorFlow summary op to greet the given guest.

  Arguments:
    params: parameter dictionary of the model
    display_name: If set, will be used as the display name
      in TensorBoard. Defaults to `name`.
    description: A longform readable description of the summary data.
      Markdown is supported.
    collections: Which TensorFlow graph collections to add the summary
      op to. Defaults to `['summaries']`. Can usually be ignored.
  """
    tensors = pinnboard_tensors(params)
    summary_metadata = {
        k: tf.SummaryMetadata(
            summary_description=description,
            plugin_data=tf.SummaryMetadata.PluginData(plugin_name=PLUGIN_NAME))
        for k in tensors.keys()
    }

    summary_op = {
        k: tf.summary.tensor_summary('pinnboard.' + k,
                                     val,
                                     summary_metadata=summary_metadata[k],
                                     collections=collections)
        for k, val in tensors.items()
    }
    # Return disctionary of configured summary operations
    return summary_op
Ejemplo n.º 19
0
 def add_text(self, tag, value, step):
     text_tensor = tf.make_tensor_proto(value, dtype=tf.string)
     meta = tf.SummaryMetadata()
     meta.plugin_data.plugin_name = "text"
     summary = tf.Summary()
     summary.value.add(tag=tag, metadata=meta, tensor=text_tensor)
     self.writer.add_summary(summary, step)
Ejemplo n.º 20
0
def add_text_tb(summary_writer, text, tag='default_tag', index=0):
    text_tensor = tf.make_tensor_proto(text, dtype=tf.string)
    meta = tf.SummaryMetadata()
    meta.plugin_data.plugin_name = "text"
    summary = tf.Summary()
    summary.value.add(tag=tag, metadata=meta, tensor=text_tensor)
    summary_writer.add_summary(summary, index) #tf.summary.text('info', tf.constant("This is test data"))
Ejemplo n.º 21
0
  def _testTFSummaryTensor_SizeGuidance(self,
                                        plugin_name,
                                        tensor_size_guidance,
                                        steps,
                                        expected_count):
    event_sink = _EventGenerator(self, zero_out_timestamps=True)
    writer = tf.summary.FileWriter(self.get_temp_dir())
    writer.event_writer = event_sink
    with self.test_session() as sess:
      summary_metadata = tf.SummaryMetadata(
          plugin_data=tf.SummaryMetadata.PluginData(plugin_name=plugin_name,
                                                    content=b'{}'))
      tf.summary.tensor_summary('scalar', tf.constant(1.0),
                                summary_metadata=summary_metadata)
      merged = tf.summary.merge_all()
      for step in xrange(steps):
        writer.add_summary(sess.run(merged), global_step=step)


    accumulator = ea.EventAccumulator(
        event_sink, tensor_size_guidance=tensor_size_guidance)
    accumulator.Reload()

    tensors = accumulator.Tensors('scalar')
    self.assertEqual(len(tensors), expected_count)
Ejemplo n.º 22
0
 def add_code_summary(self):
     code_string = "\n".join(open(os.path.basename(__file__), 'r').readlines())
     text_tensor = tf.make_tensor_proto(self.DESCRIPTION + "\n\n" + code_string, dtype=tf.string)
     meta = tf.SummaryMetadata()
     meta.plugin_data.plugin_name = "text"
     summary = tf.Summary()
     summary.value.add(tag="Hyper parameters", metadata=meta, tensor=text_tensor)
     self.summary_writer.add_summary(summary)
Ejemplo n.º 23
0
def tensorboard_text(writer, tag, value, step=0):
    text_tensor = tf.make_tensor_proto(value, dtype=tf.string)
    meta = tf.SummaryMetadata()
    meta.plugin_data.plugin_name = "text"
    summary = tf.Summary()
    summary.value.add(tag=tag, metadata=meta, tensor=text_tensor)
    writer.add_summary(summary)
    writer.flush()
Ejemplo n.º 24
0
def summary_text(name, tensor, family=None, step=None):
    meta = tf.SummaryMetadata()
    meta.plugin_data.plugin_name = "text"
    return summary.generic(name,
                           tensor,
                           metadata=meta,
                           family=family,
                           step=step)
Ejemplo n.º 25
0
def log_hparams(hparams, writer):
    value = get_hparams_text(hparams.values())
    text_tensor = tf.make_tensor_proto(value, dtype=tf.string)
    meta = tf.SummaryMetadata()
    meta.plugin_data.plugin_name = "text"
    summary = tf.Summary()
    summary.value.add(tag="hyperparameters", metadata=meta, tensor=text_tensor)
    writer.add_summary(summary)
Ejemplo n.º 26
0
Archivo: record.py Proyecto: zd6/RL
def RecordDescription(writer, msg):
    text_tensor = tf.make_tensor_proto(msg, dtype=tf.string)
    summary = tf.Summary()
    meta = tf.SummaryMetadata()
    meta.plugin_data.plugin_name = "text"
    summary.value.add(tag="Description", metadata=meta, tensor=text_tensor)
    writer.add_summary(summary)
    writer.flush()
Ejemplo n.º 27
0
 def text_summary(self, tag, value):
     """Log a text variable."""
     text_tensor = tf.make_tensor_proto(value, dtype=tf.string)
     meta = tf.SummaryMetadata()
     meta.plugin_data.plugin_name = "text"
     
     summary = tf.Summary(value=[tf.Summary.Value(tag=tag, metadata=meta, tensor=text_tensor)])
     self.writer.add_summary(summary)
Ejemplo n.º 28
0
 def add_summary(self, text):
     meta = tf.SummaryMetadata()
     meta.plugin_data.plugin_name = "text"
     summary = tf.Summary()
     text_tensor = tf.make_tensor_proto(text, dtype=tf.string)
     summary.value.add(tag="BLAST_" + self.running_mode,
                       metadata=meta,
                       tensor=text_tensor)
     self._summary_writer.add_summary(summary, self.global_step)
Ejemplo n.º 29
0
def log_board(board_str, summary_writer, summary_tag, step=0):
    board_str = board_str.replace('\n', '\n\t')
    text_tensor = tf.make_tensor_proto(board_str, dtype=tf.string)
    meta = tf.SummaryMetadata()
    meta.plugin_data.plugin_name = "text"
    summary = tf.Summary()
    summary.value.add(tag=summary_tag, metadata=meta, tensor=text_tensor)
    summary_writer.add_summary(summary, step)
    summary_writer.flush()
Ejemplo n.º 30
0
 def testSummaryMetadata(self):
     logdir = self.get_temp_dir()
     summary_metadata = tf.SummaryMetadata(display_name='current tagee',
                                           summary_description='no')
     summary_metadata.plugin_data.plugin_name = 'outlet'
     self._writeMetadata(logdir, summary_metadata)
     acc = ea.EventAccumulator(logdir)
     acc.Reload()
     self.assertProtoEquals(summary_metadata,
                            acc.SummaryMetadata('you_are_it'))