human
I am working on the file "Equation_Notes2.ipynb".
The first task is:
Debugging
With its clean and minimal design, PyTorch makes debugging a breeze. We can place breakpoints using pdb.set_trace() at any line in our code. We can then execute further computations, examine the PyTorch Tensors/Variables and pinpoint the root cause of the error.
Inplace Operations
torch.nn.functional.relu(input, inplace=False) takes a tensor of any size as input, applies ReLU on each value to produce a result tensor of same size.
inplace indicates if the operation should modify the argument itself.  This may be desirable to reduce the memory footprint of the processing. 
Wrap-up

Inherit a class from torch.nn.module - initialize: define modules, forward: build network
Create an object (instance) - Construct graphs when class in initialized and forward is called
Define optimizer and loss function
Run loop - reset gradient, backward, update step 

Multi-processing:
torch.nn.dataparallel
torch.multiprocessing
hogwild(async)
Homework
Solve the previous celsius to fahrenheit problem using pytorch classes and functions. Hook to the backpropogation for each iteration and plot the change of values. 
Finally, Save the model, load the model and run in evaluation mode and evalute the performance of the model for a given sample.
Check if a gpu is present and use gpu for accelerating the entire model and training.
ANNs for Images
Image Theory
Pixels are the raw building blocks of an image. Every image consists of a set of pixels. There is no finer granularity than the pixel. Normally, a pixel is considered the “color” or the “intensity” of light that appears in a given place in our image. 
Most pixels are represented in two ways: 

Grayscale/single channel 
Color - 3 Channel (RGB)

In a grayscale image, each pixel is a scalar value between 0 and 255, where zero corresponds to “black” and 255 being “white”. Values between 0 and 255 are varying shades of gray, where values closer to 0 are darker and values closer to 255 are lighter.

Grayscale = Image Batch x Channel x Height x Weight  = Image Batch x 1 x Height...
Can you write Python program for it?
assistant
#Here is Python program to print of the processing.

from torch.utils.data import Dataset

class c2fdata(Dataset):
  def __init__(self):
    self.celsius = torch.tensor([(float)(c) for c in range(-273,1000)])
    self.fahrenheit = torch.tensor([c*1.8+32.0 for c in self.celsius])
  
  def __getitem__(self,index):
    return self.celsius[index],self.fahrenheit[index]
  
  def __len__(self):
    return self.celsius.shape[0]
  
mydataset = c2fdata()

print(mydataset[0])
print(len(mydataset))