class_docstr: Wide and deep model, implemented using TFLearn
code: def train(self, n_epoch=1000, snapshot_step=10, batch_size=None):
      self.X_dict, self.Y_dict, category_map = self.prepare_input_data(
          self.train_data, "train data"
      )
      self.testX_dict, self.testY_dict, _ = self.prepare_input_data(
          self.test_data, "test data", category_map
      )
      validation_batch_size = (
          batch_size or self.testY_dict["Y"].shape[0]
      )
      batch_size = batch_size or self.Y_dict["Y"].shape[0]
  
      print(
          "Input data shape = %s; output data shape=%s, batch_size=%s"
          % (
              str(self.X_dict["wide_X"].shape),
              str(self.Y_dict["Y"].shape),
              batch_size,
          )
      )
      print(
          "Test data shape = %s; output data shape=%s, validation_batch_size=%s"
          % (
              str(self.testX_dict["wide_X"].shape),
              str(self.testY_dict["Y"].shape),
              validation_batch_size,
          )
      )
      print("=" * 60 + "  Training")
      self.model.fit(
          self.X_dict,
          self.Y_dict,
          n_epoch=n_epoch,
          validation_set=(self.testX_dict, self.testY_dict),
          snapshot_step=snapshot_step,
          batch_size=batch_size,
          validation_batch_size=validation_batch_size,
          show_metric=True,
          snapshot_epoch=False,
          shuffle=True,
          run_id=self.name,
      )
  
imports: from __future__ import division, print_function
  import os
  import sys
  import argparse
  import tflearn
  import tempfile
  import urllib
  import numpy
  import pandas
  import tensorflow.compat.v1
label_desc: Use image node_id 7 for calling the TFLearnWideAndDeep obj's underlying member method code with example usage: obj.train(n_epoch, snapshot_step, batch_size) without return types