code: def test_dataset_without_batch(self):
      x = np.random.rand(20, 10)
      y = np.random.randint(0, 2, (20))
  
      rdd_x = self.sc.parallelize(x)
      rdd_y = self.sc.parallelize(y)
  
      rdd = rdd_x.zip(rdd_y)
  
      dataset = TFDataset.from_rdd(
          rdd,
          features=(tf.float32, [10]),
          labels=(tf.int32, []),
          names=["features", "labels"],
          val_rdd=rdd,
      )
  
      keras_model = self.create_model()
      model = KerasModel(keras_model)
      self.intercept(
          lambda: model.fit(dataset),
          "The batch_size of TFDataset must be"
          + " specified when used in KerasModel fit.",
      )
  
      dataset = TFDataset.from_rdd(
          rdd,
          features=(tf.float32, [10]),
          labels=(tf.int32, []),
          names=["features", "labels"],
      )
      self.intercept(
          lambda: model.evaluate(dataset),
          "The batch_per_thread of TFDataset must be "
          + "specified when used in KerasModel evaluate.",
      )
  
      dataset = TFDataset.from_rdd(
          rdd_x,
          features=(tf.float32, [10]),
          names=["features", "labels"],
      )
      self.intercept(
          lambda: model.predict(dataset),
          "The batch_per_thread of TFDataset must be"
          + " specified when used in KerasModel predict.",
      )
  
imports: import pytest
  from pyspark.ml.linalg import DenseVector
  from zoo.feature.common import ChainedPreprocessing, FeatureSet
  from zoo.feature.image import *
  from test.zoo.pipeline.utils.test_utils import ZooTestCase
  from zoo.pipeline.api.keras.optimizers import Adam
  from zoo.tfpark import TFNet, TFOptimizer
  import tensorflow
  import numpy
  import os
  from zoo.tfpark import KerasModel, TFDataset
label_desc: Use image node_id 4 for calling the TestTFDataset obj's underlying member method code with example usage: obj.test_dataset_without_batch() without return types