class_docstr: Represents a symbolic input for use with function or FunctionMaker.
  
  Parameters
  ----------
  variable : a Variable instance
      This will be assigned a value before running the function, not computed
      from its owner.
  name : Any type
      If autoname=True, defaults to variable.name.
      If name is a valid Python identifier, this input can be set by kwarg,
      and its value can be accessed by self.<name>.
  update : Variable instance
      Defaults to None. Value (see previous) will be replaced with this
      expression variable after each function call. If update is None, the
      update will be the default value of the input.
  mutable : bool
      Defaults to False if update is None, True if update is not None.
      True: permit the compiled function to modify the python object being
      passed as the input.
      False: do not permit the compiled function to modify the python object
      being passed as the input.
  strict : bool
      Defaults to False.
      True: means that the value you pass for this input must have exactly the
      right type.
      False: the value you pass for this input may be cast automatically to
      the proper type.
  allow_downcast : bool or None
      Defaults to None. Only applies when `strict` is False.
      True: the value you pass for this input can be silently downcasted to
      fit the right type, which may lose precision.
      False: the value will only be cast to a more general, or precise, type.
      None: Almost like False, but allows downcast of Python floats to floatX.
  autoname : bool
      Defaults to True. See the name option.
  implicit : bool
      Defaults to False. See help(In). Note that 'None' is not allowed here,
      since we are in the symbolic case.
class_docstr_tok: ["Represents","a","symbolic","input","for","use","with","function","or","FunctionMaker",".","Parameters","--","--","--","--","--","variable",":","a","Variable","instance","This","will","be","assigned","a","value","before","running","the","function",",","not","computed","from","its","owner",".","name",":","Any","type","If","autoname=True",",","defaults","to","variable.name",".","If","name","is","a","valid","Python","identifier",",","this","input","can","be","set","by","kwarg",",","and","its","value","can","be","accessed","by","self.","<","name",">",".","update",":","Variable","instance","Defaults","to","None",".","Value","(","see","previous",")","will","be","replaced","with","this","expression","variable","after","each","function","call",".","If","update","is","None",",","the","update","will","be","the","default","value","of","the","input",".","mutable",":","bool","Defaults","to","False","if","update","is","None",",","True","if","update","is","not","None",".","True",":","permit","the","compiled","function","to","modify","the","python","object","being","passed","as","the","input",".","False",":","do","not","permit","the","compiled","function","to","modify","the","python","object","being","passed","as","the","input",".","strict",":","bool","Defaults","to","False",".","True",":","means","that","the","value","you","pass","for","this","input","must","have","exactly","the","right","type",".","False",":","the","value","you","pass","for","this","input","may","be","cast","automatically","to","the","proper","type",".","allow_downcast",":","bool","or","None","Defaults","to","None",".","Only","applies","when","`","strict","`","is","False",".","True",":","the","value","you","pass","for","this","input","can","be","silently","downcasted","to","fit","the","right","type",",","which","may","lose","precision",".","False",":","the","value","will","only","be","cast","to","a","more","general",",","or","precise",",","type",".","None",":","Almost","like","False",",","but","allows","downcast","of","Python","floats","to","floatX",".","autoname",":","bool","Defaults","to","True",".","See","the","name","option",".","implicit",":","bool","Defaults","to","False",".","See","help","(","In",")",".","Note","that","'None","'","is","not","allowed","here",",","since","we","are","in","the","symbolic","case","."]
code: def __init__(
      self,
      variable,
      name=None,
      update=None,
      mutable=None,
      strict=False,
      allow_downcast=None,
      autoname=True,
      implicit=False,
  ):
      assert implicit is not None  # Safety check.
      self.variable = variable
      if autoname and name is None:
          self.name = variable.name
      else:
          self.name = name
  
      if self.name is not None and not isinstance(
          self.name, string_types
      ):
          raise TypeError(
              "name must be a string! (got: %s)" % self.name
          )
      self.update = update
      if update is not None:
          if not variable.type == update.type:
              raise TypeError(
                  "Variable '%s' has type %s but an update of "
                  "type %s. The type of the update should be "
                  "the same as the type of the variable"
                  % (variable, variable.type, update.type)
              )
  
      if mutable is not None:
          self.mutable = mutable
      else:
          self.mutable = update is not None
  
      self.strict = strict
      self.allow_downcast = allow_downcast
      self.implicit = implicit
  
file_path: Theano/theano/compile/io.py
imports: from __future__ import absolute_import, print_function, division
  from theano import gof
  from .sharedvalue import SharedVariable
  from six import string_types
  import logging
label_desc: Use image node_id 1 to create a new SymbolicInput object from inherited base classes: object with example: obj = SymbolicInput(variable, name, update, mutable, strict, allow_downcast, autoname, implicit)