class_docstr: Base layer class.
  This is the class from which all layers inherit.
  A layer is a class implementing common neural networks operations, such
  as convolution, batch norm, etc. These operations require managing weights,
  losses, updates, and inter-layer connectivity.
  Users will just instantiate a layer and then treat it as a callable.
  We recommend that descendants of `Layer` implement the following methods:
  * `__init__()`: Save configuration in member variables
  * `build()`: Called once from `__call__`, when we know the shapes of inputs
      and `dtype`.
  * `call()`: Called in `__call__` after making sure `build()` has been called
      once. Should actually perform the logic of applying the layer to the
      input tensors (which should be passed in as the first argument).
class_docstr_tok: ["Base","layer","class",".","This","is","the","class","from","which","all","layers","inherit",".","A","layer","is","a","class","implementing","common","neural","networks","operations",",","such","as","convolution",",","batch","norm",",","etc",".","These","operations","require","managing","weights",",","losses",",","updates",",","and","inter-layer","connectivity",".","Users","will","just","instantiate","a","layer","and","then","treat","it","as","a","callable",".","We","recommend","that","descendants","of","`","Layer","`","implement","the","following","methods",":","*","`","__init__","(",")","`",":","Save","configuration","in","member","variables","*","`","build","(",")","`",":","Called","once","from","`","__call__","`",",","when","we","know","the","shapes","of","inputs","and","`","dtype","`",".","*","`","call","(",")","`",":","Called","in","`","__call__","`","after","making","sure","`","build","(",")","`","has","been","called","once",".","Should","actually","perform","the","logic","of","applying","the","layer","to","the","input","tensors","(","which","should","be","passed","in","as","the","first","argument",")","."]
docstr: Returns the layer's output shape
docstr_tok: ["Returns","the","layer","'s","output","shape"]
code: def compute_output_shape(self, input_shape):
      """Returns the layer's output shape"""
  
file_path: tf-encrypted/tf_encrypted/keras/engine/base_layer.py
imports: import logging
  from abc import ABC
  import numpy
  import tensorflow
  from tensorflow.python.keras.utils import generic_utils
  import tf_encrypted
  from tf_encrypted.keras.engine.base_layer_utils import unique_object_name
  from tf_encrypted.protocol import TFEPrivateTensor
  from tf_encrypted.protocol import TFEPrivateVariable
label_desc: Use image node_id 4 for calling the Layer obj's underlying member method code with example usage: obj.compute_output_shape(input_shape) without return types