class_docstr: Mini-batch Gradient Descent algorithm.
  
  Parameters
  ----------
  batch_size : int or None
      Set up min-batch size. The ``None`` value will ensure that all data
      samples will be propagated through the network at once.
      Defaults to ``128``.
  
  {BaseOptimizer.Parameters}
  
  Attributes
  ----------
  {BaseOptimizer.Attributes}
  
  Methods
  -------
  {BaseOptimizer.Methods}
  
  Examples
  --------
  >>> import numpy as np
  >>> from neupy import algorithms
  >>> from neupy.algorithms import *
  >>>
  >>> x_train = np.array([[1, 2], [3, 4]])
  >>> y_train = np.array([[1], [0]])
  >>>
  >>> network = Input(2) >> Sigmoid(3) >> Sigmoid(1)
  >>> optimizer = algorithms.GradientDescent(network, batch_size=1)
  >>> optimizer.train(x_train, y_train)
docstr: Train one epoch.
  
  Parameters
  ----------
  X_train : array-like
      Training input dataset.
  
  y_train : array-like
      Training target dataset.
  
  Returns
  -------
  float
      Training error.
docstr_tok: ["Train","one","epoch",".","Parameters","--","--","--","--","--","X_train",":","array-like","Training","input","dataset",".","y_train",":","array-like","Training","target","dataset",".","Returns","--","--","--","-","float","Training","error","."]
code: def one_training_update(self, X_train, y_train):
      """
      Train one epoch.
  
      Parameters
      ----------
      X_train : array-like
          Training input dataset.
  
      y_train : array-like
          Training target dataset.
  
      Returns
      -------
      float
          Training error.
      """
      return self.functions.one_training_update(
          *as_tuple(X_train, y_train)
      )
  
imports: from __future__ import division
  import time
  import numpy
  import tensorflow
  from neupy import layers
  from neupy.core.properties import FunctionWithOptionsProperty, ScalarVariableProperty, IntProperty, Property
  from neupy.utils import AttributeKeyDict, format_data, as_tuple, iters, tf_utils
  from neupy.algorithms.gd import objectives
  from neupy.exceptions import InvalidConnection
  from neupy.algorithms.base import BaseNetwork
label_desc: Use image node_id 2 for calling the GradientDescent obj's underlying member method code with example usage: obj.one_training_update(X_train, y_train) and returns: self