--- license: apache-2.0 library_name: pytorch --- # identity A neuron that performs the IDENTITY logical computation. It generates the following truth table: | A | C | | - | - | | 0 | 0 | | 1 | 1 | It is inspired by McCulloch & Pitts' 1943 paper 'A Logical Calculus of the Ideas Immanent in Nervous Activity'. It doesn't contain any parameters. It takes as input a single column vector of zeros and ones. It outputs a single column vector of zeros and ones. Its mechanism is outlined in Figure 10-3 of Aurelien Geron's book 'Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow'. ![](https://raw.githubusercontent.com/sambitmukherjee/handson-ml3-pytorch/main/chapter10/Figure_10-3.png) Like all the other neurons in Figure 10-3, it is activated when at least two of its input connections are active. Code: https://github.com/sambitmukherjee/handson-ml3-pytorch/blob/main/chapter10/logical_computations_with_neurons.ipynb ## Usage ``` import torch import torch.nn as nn from huggingface_hub import PyTorchModelHubMixin # Let's create a column vector containing two values - `0` and `1`: batch = torch.tensor([[0], [1]]) class IDENTITY(nn.Module, PyTorchModelHubMixin): def __init__(self): super().__init__() self.operation = "C = A" def forward(self, x): a = x inputs = torch.cat([a, a], dim=1) column_sum = torch.sum(inputs, dim=1, keepdim=True) output = (column_sum >= 2).long() return output # Instantiate: identity = IDENTITY.from_pretrained("sadhaklal/identity") # Forward pass: output = identity(batch) print(output) ```