text: from __future__ import print_function
  from __future__ import division
  from __future__ import unicode_literals
  
  import numpy as np
  
  from trans import undo_transforms
  
  np.random.seed(123)
  import tensorflow as tf
  
  tf.set_random_seed(123)
  import deepchem as dc
  
  # Load Tox21 dataset
  tasks, datasets, transformers = dc.molnet.load_qm7b_from_mat()
  train_dataset, valid_dataset, test_dataset = datasets
  
  # Fit models
  metric = dc.metrics.Metric(dc.metrics.pearson_r2_score, mode="regression")
  
  # Batch size of models
  batch_size = 50
  n_embedding = 30
  n_distance = 51
  distance_min = -1.
  distance_max = 9.2
  n_hidden = 15
  
  model = dc.models.DTNNTensorGraph(
      len(tasks),
      n_embedding=n_embedding,
      n_hidden=n_hidden,
      n_distance=n_distance,
      distance_min=distance_min,
      distance_max=distance_max,
      output_activation=False,
      batch_size=batch_size,
      learning_rate=0.0001,
      use_queue=False,
      mode="regression")
  
  # Fit trained model
  model.fit(train_dataset, nb_epoch=1)
  
  print("Evaluating model")
  train_scores = model.evaluate(train_dataset, [metric], transformers)
  valid_scores = model.evaluate(valid_dataset, [metric], transformers)
  
  print("Train scores")
  print(train_scores)
  
  print("Validation scores")
  print(valid_scores)
  