class_docstr: Draws a learning curve with training & validation metrics
  over time as the network trains.
class_docstr_tok: ["Draws","a","learning","curve","with","training","&","validation","metrics","over","time","as","the","network","trains","."]
code: def setup_chart(self):
      self.fig = bokeh.plotting.Figure(
          x_axis_type="datetime", x_axis_label="Training time"
      )
      # TODO(leodirac): There's got to be a better way to
      # get a bokeh plot to dynamically update as a pandas dataframe changes,
      # instead of copying into a list.
      # I can't figure it out though.  Ask a pyData expert.
      self.x_axis_val1 = []
      self.y_axis_val1 = []
      self.train1 = self.fig.line(
          self.x_axis_val1,
          self.y_axis_val1,
          line_dash="dotted",
          alpha=0.3,
          legend="train",
      )
      self.train2 = self.fig.circle(
          self.x_axis_val1,
          self.y_axis_val1,
          size=1.5,
          line_alpha=0.3,
          fill_alpha=0.3,
          legend="train",
      )
      self.train2.visible = False  # Turn this on later.
      self.x_axis_val2 = []
      self.y_axis_val2 = []
      self.valid1 = self.fig.line(
          self.x_axis_val2,
          self.y_axis_val2,
          line_color="green",
          line_width=2,
          legend="validation",
      )
      self.valid2 = self.fig.circle(
          self.x_axis_val2,
          self.y_axis_val2,
          line_color="green",
          line_width=2,
          legend=None,
      )
      self.fig.legend.location = "bottom_right"
      self.fig.yaxis.axis_label = self.metric_name
      return bokeh.plotting.show(self.fig, notebook_handle=True)
  
imports: import time
label_desc: Use image node_id 2 for calling the LiveLearningCurve obj's underlying member method code with example usage: obj.setup_chart() and returns: bokeh