|
Infopost | 2022.08.03
|

![]() |
|
Add layer applied to a single-channel image. |
![]() |
|
Add in RGB. |
![]() |
|
Add in HSV gives you a hue shift. |
![]() |
|
Adding the Cb and Cr channels gives this color space even more of a hue shift. |
![]() |
|
Subtraction layer applied to a single-channel image. |
![]() |
|
Subtraction in RGB. |
![]() |
|
Subtraction in HSV. |
![]() |
|
Subtracting YCbCr is pretty deformative. |
![]() |
|
Multiply, I guess, makes things darker by the amount of darkness being multiplied (0.0-1.0 values). |
![]() |
|
RGB multiply looks similar. |
![]() |
|
In HSV, the multiplication is applied less to brightness and more to saturation. |
![]() |
|
Likewise YCbCr shifts green. |
![]() |
|
Average in luminance is pretty straightforward. |
![]() |
|
Average in RGB also makes sense. |
![]() |
|
Average in HSV sometimes sees a hue shift. |
![]() |
|
Average YCbCr works like RGB. |
![]() |
|
Max in monochrome selects the brighter pixel. |
![]() |
|
Same in RGB. |
![]() |
|
It's not as straightforward in HSV where hue and saturation impact which pixel value is used. |
![]() |
|
Max for YCbCr likewise biases toward purple (red and blue) pixels. |
![]() |
|
Minimum, of course, selects the darker pixels. |
![]() |
|
Same with RGB. |
![]() |
|
In HSV, minimum looks for dark, desaturated pixels with hues happening to be near zero. |
![]() |
|
YCbCr looks for dark, greenish pixels. |
![]() |
|
In monochrome images you can see the dark details disappear as pooling selects the brightest pixels. |
![]() |
|
RGB behaves similar to luminance. |
![]() |
|
HSV makes the occasional weird selection based on hue and saturation. |
![]() |
|
Much like with maximum and minimum from the previous section, maxpooling on YCbCr biases toward the purplest pixel. |
![]() |
|
The jaggies (square artifacts) are less obvious in average pooling. |
![]() |
|
Edges in RGB look more like antialiasing, flat areas look blurred. |
![]() |
|
HSV again shows some occasional hue shift. |
![]() |
|
Like with averaging two images, average pooling a single YCbCr image looks just like RGB. |
![]() |
|
The ReLu looks pretty close to identical. I may not understand the layer, but expected that each output would be fully connected to the inputs. Hmm. |
![]() |
|
Sigmoid looks like it inverts the input. |
![]() |
|
Softplus isn't too fond of the dark parts of the panda. |
![]() |
|
Tanh seems to have more or less just darkened the input. |
Model: "model" __________________________________________________________________________ Layer (type) Output Shape Param # Connected to ========================================================================== input_1 (InputLayer) [(None, 32, 32, 1)] 0 __________________________________________________________________________ flatten (Flatten) (None, 1024) 0 input_1[0] [0] __________________________________________________________________________ dense (Dense) (None, 1024) 1049600 flatten[0] [0] __________________________________________________________________________ input_2 (InputLayer) [(None, 32, 32, 1)] 0 __________________________________________________________________________ reshape (Reshape) (None, 32, 32, 1) 0 dense[0] [0] ========================================================================== Total params: 1,049,600 Trainable params: 1,049,600 Non-trainable params: 0 __________________________________________________________________________
![]() |
|
One conv2d layer, kernel size 3, linear activation. |
![]() |
|
One conv2d layer, kernel size 3, ReLu activation. |
![]() |
|
One conv2d layer, kernel size 3, sigmoid activation. |
![]() |
|
One conv2d layer, kernel size 3, softplus activation. |
![]() |
|
One conv2d layer, kernel size 3, tanh activation. |
![]() |
|
One conv2d layer, kernel size 7, ReLu activation. |
![]() |
|
One conv2d layer, kernel size 7, sigmoid activation. |
![]() |
|
One conv2d layer, kernel size 7, softplus activation. |
![]() |
|
One conv2d layer, kernel size 7, tanh activation. |
![]() |
|
Two conv2d layers, kernel size 3, ReLu activation for both. |
![]() |
|
Two conv2d layers, kernel size 3, ReLu activation and tanh activation. |
![]() |
|
Two conv2d layers, kernel size 3, tanh activation then ReLu activation. |
![]() |
|
Two conv2d layers, kernel size 3, tanh activation for both. |
![]() |
|
Conv2dTranspose, kernel size 2, strides 2, ReLu activation. |
![]() |
|
Conv2dTranspose, kernel size 2, strides 2, sigmoid activation. |
|
Conv2dTranspose, kernel size 2, strides 4, tanh activation. |
|
Conv2dTranspose, kernel size 4, strides 2, ReLu activation. |
|
Conv2dTranspose, kernel size 4, strides 2, tanh activation. |
|
Conv2dTranspose, kernel size 8, strides 2, ReLu activation. |
|
Conv2dTranspose, kernel size 8, strides 2, tanh activation. |
| ◄ |
2022.07.29
AdhesivesPrepping wood planks for the next project, chasing an elusive Gloomhaven personal quest, concatenate layers in ML, and a little bit of recreation. |
2022.08.14
PopcornWatching this week's political news from the peanut gallery. |
► |
|
2022.08.19
RewiringPlaying with autoencoders for graphics processing. |
|
2020.01.26
Neural failsExperiments with convolutional autoencoders and style transfer. East coast travel and video games plus the big wall of Gloomhaven achievements. |
|
2022.01.15
Deep graphicsAn implementation of the Burning Ship fractal and some experiments in creating autoencoders. Changing the style layers in style transfer and combining the outputs into a composite image. Mass Effect 3 Leviathan and Omega DLCs. |
|
www.paepper.com
Training a neural network with Numpy :: Päpper's Machine Learning Blog - This blog features state of the art applications in ...[AI summary] This article explains how to train a simple neural network using Numpy in Python without relying on frameworks like TensorFlow or PyTorch, focusing on the implementation of ReLU activation, weight initialization, and gradient descent for optimization. |
|
marcospereira.me
Backpropagation From Scratch-Marcos PereiraIn this post we summarize the math behind deep learning and implement a simple network that achieves 85% accuracy classifying digits from the MNIST dataset. |
|
blog.vstelt.dev
Writing a Neural Network from Scratch in Rust[AI summary] The article explains the process of building a neural network from scratch in Rust, covering forward and backward propagation, matrix operations, and code implementation. |