Deep Learning¶

Practice Projects¶

P5 Additional: Mixed Styles¶

Perfect and complete explanation - Artistic Style Transfer by Naoki Shibuya

Using TensorFlow backend.

Display Images¶

Preprocess¶

Out[78]:
((448, 640, 3), (448, 640, 3))
Out[79]:
((510, 313, 3), (510, 313, 3))
Out[82]:
TensorShape([Dimension(3), Dimension(448), Dimension(640), Dimension(3)])
Out[83]:
TensorShape([Dimension(3), Dimension(510), Dimension(313), Dimension(3)])

VGG16 Usage¶

_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
input_3 (InputLayer)         (3, 448, 640, 3)          0         
_________________________________________________________________
block1_conv1 (Conv2D)        (3, 448, 640, 64)         1792      
_________________________________________________________________
block1_conv2 (Conv2D)        (3, 448, 640, 64)         36928     
_________________________________________________________________
block1_pool (MaxPooling2D)   (3, 224, 320, 64)         0         
_________________________________________________________________
block2_conv1 (Conv2D)        (3, 224, 320, 128)        73856     
_________________________________________________________________
block2_conv2 (Conv2D)        (3, 224, 320, 128)        147584    
_________________________________________________________________
block2_pool (MaxPooling2D)   (3, 112, 160, 128)        0         
_________________________________________________________________
block3_conv1 (Conv2D)        (3, 112, 160, 256)        295168    
_________________________________________________________________
block3_conv2 (Conv2D)        (3, 112, 160, 256)        590080    
_________________________________________________________________
block3_conv3 (Conv2D)        (3, 112, 160, 256)        590080    
_________________________________________________________________
block3_pool (MaxPooling2D)   (3, 56, 80, 256)          0         
_________________________________________________________________
block4_conv1 (Conv2D)        (3, 56, 80, 512)          1180160   
_________________________________________________________________
block4_conv2 (Conv2D)        (3, 56, 80, 512)          2359808   
_________________________________________________________________
block4_conv3 (Conv2D)        (3, 56, 80, 512)          2359808   
_________________________________________________________________
block4_pool (MaxPooling2D)   (3, 28, 40, 512)          0         
_________________________________________________________________
block5_conv1 (Conv2D)        (3, 28, 40, 512)          2359808   
_________________________________________________________________
block5_conv2 (Conv2D)        (3, 28, 40, 512)          2359808   
_________________________________________________________________
block5_conv3 (Conv2D)        (3, 28, 40, 512)          2359808   
_________________________________________________________________
block5_pool (MaxPooling2D)   (3, 14, 20, 512)          0         
=================================================================
Total params: 14,714,688
Trainable params: 14,714,688
Non-trainable params: 0
_________________________________________________________________
_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
input_4 (InputLayer)         (3, 510, 313, 3)          0         
_________________________________________________________________
block1_conv1 (Conv2D)        (3, 510, 313, 64)         1792      
_________________________________________________________________
block1_conv2 (Conv2D)        (3, 510, 313, 64)         36928     
_________________________________________________________________
block1_pool (MaxPooling2D)   (3, 255, 156, 64)         0         
_________________________________________________________________
block2_conv1 (Conv2D)        (3, 255, 156, 128)        73856     
_________________________________________________________________
block2_conv2 (Conv2D)        (3, 255, 156, 128)        147584    
_________________________________________________________________
block2_pool (MaxPooling2D)   (3, 127, 78, 128)         0         
_________________________________________________________________
block3_conv1 (Conv2D)        (3, 127, 78, 256)         295168    
_________________________________________________________________
block3_conv2 (Conv2D)        (3, 127, 78, 256)         590080    
_________________________________________________________________
block3_conv3 (Conv2D)        (3, 127, 78, 256)         590080    
_________________________________________________________________
block3_pool (MaxPooling2D)   (3, 63, 39, 256)          0         
_________________________________________________________________
block4_conv1 (Conv2D)        (3, 63, 39, 512)          1180160   
_________________________________________________________________
block4_conv2 (Conv2D)        (3, 63, 39, 512)          2359808   
_________________________________________________________________
block4_conv3 (Conv2D)        (3, 63, 39, 512)          2359808   
_________________________________________________________________
block4_pool (MaxPooling2D)   (3, 31, 19, 512)          0         
_________________________________________________________________
block5_conv1 (Conv2D)        (3, 31, 19, 512)          2359808   
_________________________________________________________________
block5_conv2 (Conv2D)        (3, 31, 19, 512)          2359808   
_________________________________________________________________
block5_conv3 (Conv2D)        (3, 31, 19, 512)          2359808   
_________________________________________________________________
block5_pool (MaxPooling2D)   (3, 15, 9, 512)           0         
=================================================================
Total params: 14,714,688
Trainable params: 14,714,688
Non-trainable params: 0
_________________________________________________________________
100%|██████████| 10/10 [14:34<00:00, 70.73s/it]
100%|██████████| 10/10 [03:52<00:00, 22.43s/it]

Display Style Transfer¶

Pair 1¶

Pair 2¶