class_docstr: Graph for Gibbs sampling from Coconet.
code: def get_placeholders(self):
      hparams = self.hparams
      return dict(
          pianorolls=tf.placeholder(
              tf.bool,
              [
                  None,
                  None,
                  hparams.num_pitches,
                  hparams.num_instruments,
              ],
              "pianorolls",
          ),
          # The default value is only used for checking if completion masker
          # should be evoked.  It can't be used directly as the batch size
          # and length of pianorolls are unknown during static time.
          outer_masks=tf.placeholder_with_default(
              np.zeros(
                  (1, 1, hparams.num_pitches, hparams.num_instruments),
                  dtype=np.float32,
              ),
              [
                  None,
                  None,
                  hparams.num_pitches,
                  hparams.num_instruments,
              ],
              "outer_masks",
          ),
          sample_steps=tf.placeholder_with_default(
              0, (), "sample_steps"
          ),
          total_gibbs_steps=tf.placeholder_with_default(
              0, (), "total_gibbs_steps"
          ),
          current_step=tf.placeholder_with_default(
              0, (), "current_step"
          ),
          temperature=tf.placeholder_with_default(
              0.99, (), "temperature"
          ),
      )
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import time
  from magenta.models.coconet import lib_graph
  from magenta.models.coconet import lib_hparams
  import numpy
  import tensorflow.compat.v1
label_desc: Use image node_id 2 for calling the CoconetSampleGraph obj's underlying member method code with example usage: obj.get_placeholders() and returns: dict