code: def AtomicNNLayer(tensor, size, weights, biases, name=None):
      """Fully connected layer with pre-initialized weights and biases.
  
      Parameters
      ----------
      tensor: tf.Tensor
        Input tensor.
      size: int
        Number of nodes in this layer.
      weights: tf.Variable
        Initialized weights.
      biases: tf.Variable
        Initialized biases.
      name: str
        Name for this op, optional (Defaults to 'fully_connected' if None)
  
      Returns
      -------
      retval: tf.Tensor
        A new tensor representing the output of the fully connected layer.
  
      Raises
      ------
      ValueError: If input tensor is not 2D.
  
      """
  
      if len(tensor.get_shape()) != 2:
          raise ValueError(
              "Dense layer input must be 2D, not %dD"
              % len(tensor.get_shape())
          )
      with tf.name_scope(
          name, "fully_connected", [tensor, weights, biases]
      ):
          return tf.nn.xw_plus_b(tensor, weights, biases)
  
file_path: deepchem/contrib/atomicconv/models/atomicnet_ops.py
imports: from __future__ import print_function
  from __future__ import division
  from __future__ import unicode_literals
  import numpy
  import tensorflow
label_desc: Use image node_id 2 for calling a global function with example usage: AtomicNNLayer(tensor, size, weights, biases, name) and returns: tf