Printing a Model
## 🐛 Bug
## To Reproduce

Suppose I want to find the summary of a deepchem model and I use `print(model)` it throws an `AttributeError`.

Steps to reproduce the behavior:
```
model = dc.models.AtomicConvModel(n_tasks = 4)
print (model)
```

I would like `print(model)` to print the summary of the model. Any hints on how to fix it?
Thanks
diff --git a/deepchem/models/keras_model.py b/deepchem/models/keras_model.py
index 115adb843..7dfe8b43a 100644
--- a/deepchem/models/keras_model.py
+++ b/deepchem/models/keras_model.py
@@ -175,6 +175,9 @@ class KerasModel(Model):
       the Weights & Biases logger object used to log data and metrics
     """
     super(KerasModel, self).__init__(model=model, model_dir=model_dir, **kwargs)
+    self.loss = loss  # not used
+    self.learning_rate = learning_rate  # not used
+    self.output_types = output_types  # not used
     if isinstance(loss, Loss):
       self._loss_fn: LossFn = _StandardLoss(model, loss)
     else:
diff --git a/deepchem/models/torch_models/torch_model.py b/deepchem/models/torch_models/torch_model.py
index 9b51a3d25..b5191d53e 100644
--- a/deepchem/models/torch_models/torch_model.py
+++ b/deepchem/models/torch_models/torch_model.py
@@ -175,6 +175,9 @@ class TorchModel(Model):
       the Weights & Biases logger object used to log data and metrics
     """
     super(TorchModel, self).__init__(model=model, model_dir=model_dir, **kwargs)
+    self.loss = loss  # not used
+    self.learning_rate = learning_rate  # not used
+    self.output_types = output_types  # not used
     if isinstance(loss, Loss):
       self._loss_fn: LossFn = _StandardLoss(self, loss)
     else:
['deepchem/models/keras_model.py', 'deepchem/models/torch_models/torch_model.py']