-
Notifications
You must be signed in to change notification settings - Fork 0
/
dl_nst.py
191 lines (152 loc) · 56.8 KB
/
dl_nst.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
# -*- coding: utf-8 -*-
"""DL NST.ipynb
Automatically generated by Colaboratory.
Original file is located at
https://colab.research.google.com/drive/1RXj573MfUZK3QhUchxsPrGPhFSfXY1xd
## Deep Learning with PyTorch : Neural Style Transfer
## Task 1 : Content and Style Image collection
![](https://archive.org/download/deep-learning-with-py-torch/Deep%20Learning%20with%20PyTorch.png)
"""
!pip install torch torchvision
!git clone https://github.com/parth1620/Project-NST.git
"""## Task 2 : Loading VGG Pretrained Model"""
import torch
from torchvision import models
vgg=models.vgg19(pretrained=True)
print(vgg)
vgg=vgg.features
print(vgg)
for parameters in vgg.parameters():
parameters.requires_grad_(False)
device=torch.device("cuda" if torch.cuda.is_available() else "cpu")
print(device)
vgg.to(device)
"""## Task 3 : Preprocess image
Torchvision models page : https://pytorch.org/docs/stable/torchvision/models.html
"""
from PIL import Image
from torchvision import transforms as T
def preprocess(img_path,max_size=500):
image=Image.open(img_path).convert('RGB')
if max(image.size)>max_size:
size=max_size
else:
size=max(image.size)
img_transforms=T.Compose([
T.Resize(size),
T.ToTensor(),
T.Normalize(mean=[0.485,0.456,0.406],
std=[0.229,0.224,0.225])
])
image=img_transforms(image)
image=image.unsqueeze(0) #(3,224,224)->(1,3,224,224)
return image
content_p=preprocess('/content/Project-NST/content11.jpg')
style_p=preprocess('/content/Project-NST/style12.jpg')
content_p=content_p.to(device)
style_p=style_p.to(device)
print("Content shape",content_p.shape)
print("Style shape",style_p.shape)
"""## Task 4 : Deprocess image"""
import numpy as np
import matplotlib.pyplot as plt
def deprocess(tensor):
image=tensor.to('cpu').clone()
image=image.numpy()
image=image.squeeze(0)
image=image.transpose(1,2,0)
image=image*np.array([0.229,0.224,0.225])+np.array([0.485,0.456,0.406])
image=image.clip(0,1)
return image
content_d=deprocess(content_p)
style_d=deprocess(style_p)
print("deprocess content",content_d.shape)
print("deprocess style",style_d.shape)
fig,(ax1,ax2)=plt.subplots(1,2,figsize=(20,10))
ax1.imshow(content_d)
ax2.imshow(style_d)
"""## Task 5 : Get content,style features and create gram matrix"""
def get_features(image,model):
layers={
'0' : 'conv1_1',
'5' : 'conv2_1',
"10":"conv3_1",
"19":"conv4_1",
"21":"conv4_2",#content feature
"28":"conv5_1"
}
x= image
Features={}
for name,layer in model._modules.items():
x=layer(x)
if name in layers:
Features[layers[name]]=x
return Features
content_f=get_features(content_p,vgg)
style_f=get_features(style_p,vgg)
"""![WhatsApp Image 2020-11-12 at 10.12.39 PM.jpeg](data:image/jpeg;base64,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EQEREBERAREQEWEQZREQEREHCqtl6OqrJamaaoLpRICAW8n6cjOM8CxpHHhjsypcloEkrZn1tUZRG+NzwWjUHHPEaccD2cO3K520Md/ZXtmsxM0BiD3QukDQHsd8gcM/GB3PPDd+Va5hfae60kcRqp6eN0TJpO9Ie3dv1u+2WeXh2ZQdKOwUcZjcHTb1lH0QSB+HFgyAeHDUATg+UrRDszSwtxHU1LTv2zgt0Nw8RmPhhvW04+/mtFD3f7gXDeB3dEx5pzJjOrQOo8B32esjPXjgtbm3oTf7O6tdDqZ0fe6QQd73+8/y6OXXz68IJv8Ao1SEyl887t85+9BLfjGufvC08OWrPLj3xWH7N0zmFr6qocC2oGDoxiZ4e/8AZ7R/ZQIYL7K2aFtRWxPmhqSyWcN0xPEvxPLq0c/Jz4r6kF/MccobUxyzR7xkQe1zYZTIDokPW1rMD6ndeEHSo7ZQPtMVNQz5gjm3sUkJbhjw7PDAxgHIxjHUvu2WWntc7pqeWUh0ehzH6SD37nlx4ZyXPefrXIpqK7sEXRt9BDNWVTZ2FwaY2PmdI2Uc+OnIx/nGeSxGNowJDOZjioO+bEBxi33Axknnu+YA6u3mHTs9po6epdcaOrknEzHNLtTXNeNZdnIGSQS4Zz146kFgjD9XTKnO9ml5M+VKMO/Z8pwotJFcabZZkUMNSyrbMQWnTrDTNkk44HvTk4+rio1My/1BoWSSVtO9sdRvXEM0ueJAYQ48eBYHA47eeUE9+zFG+nED56h0YhhjDSW4zEQWPxjiRgcDwPWFKobPDRVbaiKaXIh3RZpYGkai7OA0Y4k8uC5EAvzRSSPFW6JkkXSGEt1uzC8SYHgiQxkcuRxwWiI7QiOnleLhvWQUQfHhhDpN5ioz2952cOxB1amz0NVeTM6tlFZ/jbpr25a3Ru+GRkNwT5MnPNbaWwUlLaaq2Ql7IKoODywNbjU0NOABgZA6hzJKgWinuX+kDaiviqeFNPE+R+ndhxmaWhmOONI+7tyo1W7aLVcxCysGqGo6OW6TpkDxusf+nPkxjOTlBYKO2R0lZPVMmmc+cN1tcRpLg1rdWAOeGt8nPAGSpy5tm6UHVsdV0h0bKj/Z3zganRlrez/NqXSQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEWFlAREQEREBERARYWUBEWEGUREBFhEGUREBERAREQEREBQq6s6LUUUerAqJXMxuy7VhjnYBBw08M5PDgR1qaotbQw1slNJKZQ6mk3keh5b32kt4458CfSggUe0tuq3wsh6SN8Iywvp3tGHg6DkjkcEDyhfUW0dumNQ2N8pfAYgWbshzjI4sZgeVzSOOMY44CxBs1b4NzuzU/EthazNQ48Is6B5caj51Fn2SoTTSQ0plj3ghY/eSOeHMjeXtbxPaXcefHrQb6fam1TvhY2V7HSlukSN0kanljSR/mc0gebqXbwuRRWKngdFNK+SSoYwRl4cW6mNcXMaQOYbqIC6cEQghjha57msaGh0ji5xx2k8SfKg2JhEQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREH//2Q==)
![WhatsApp Image 2020-11-12 at 10.12.39 PM (1).jpeg](data:image/jpeg;base64,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NDu7LmItTnPzdux7Htt8mpjgTKeY8AXLxFuuqqN2FO0aom7HZY4QQ12RhbuzaKqYq3oycuuUBFG+XYKnjja573UcYDWjJPJb92M6JyXYOYpv0zP/AHsp1Ta7gYHAUc54j/tnrVGFpmL1MzDu4m/am1VEVQytFsro7rSPfRzta2VpJMZAAyu7XXTNM+7gTMZL9c+/No8uX1CuaoRO1dLUTXBjooZHtEQGWtJ6StW/TM1e0Oxs+5RTbmKp+aDFvrN47/pZuQ/wFU7lWjf8e1lH+ULRsjBNBBUiaJ7CXtxqGM8Fs2ImInNydo101VU7s5uvZzvdJ53U/wA56vc5KICD6g+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIIF1fS2/aOvNbLuhJTwaCWkh2DJnGB4R9aDq/WG0fHW/Yd+CB+sNo+ON+w78EHHeb7a5rPXxRVQdI+mka1oY7JJacDkg20t+tHYUDJapuRG0Fro3c8DwImJy94Zi92McRURfdH8Ej2JqmYymWQv1lByKqMEf+G78FOcscoR8l8tp2ihnFVmJtG9heI3YDi9pA5eAqEpL9YbR8db9h34IH6xWj4637DvwQfDtFaMEdmt+w78EHBs9fbZBYqCGaqDJGQMa5ro3Ag48SCQ/WK0/HW/Yd+CB+sdp+Ot+w78EEbX3y2vu1rlZVZZE6TW4Ruw3LCBnggkv1itPx1v2HfggfrFafjo+w78ED9YrR01rfsO/BB82Ye2S1F7c6X1VQ5pIIyDK4g8UEqgIPqD4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg+oPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICD6g+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgiNrr0Nntm6+67veOp4i5jDyc7k0HwZIQR09v2gZbaGop7rLNXGWF1XG5rd29hcN4GDHc4GcceXNB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)
"""
def gram_matrix(tensor):
b,c,h,w=tensor.size()
tensor=tensor.view(c,h*w)
gram=torch.mm(tensor,tensor.t())
return gram
style_grams={layer:gram_matrix(style_f[layer]) for layer in style_f}
"""## Task 6 : Creating Style and Content loss function"""
def content_loss(target_conv4_2,content_conv4_2):
loss=torch.mean((target_conv4_2-content_conv4_2)**2)
return loss
style_weights={
'conv1_1':1.0,
'conv2_1':0.75,
'conv3_1':0.2,
'conv4_1':0.2,
'conv5_1':0.2
}
def style_loss(style_weights,target_features,style_grams):
loss=0
for layer in style_weights:
target_f=target_features[layer]
target_gram=gram_matrix(target_f)
style_gram=style_grams[layer]
b,c,h,w=target_f.shape
layer_loss=style_weights[layer]*torch.mean((target_gram-style_gram)**2)
loss+=layer_loss/(c*h*w)
return loss
target=content_p.clone().requires_grad_(True).to(device)
target_f=get_features(target,vgg)
print("content loss:",content_loss(target_f['conv4_2'],content_f['conv4_2']))
print("style loss:",style_loss(style_weights,target_f,style_grams))
"""## Task 7 : Training loop"""
from torch import optim
optimizer=optim.Adam([target],lr=0.003)
alpha=1
beta=1e5
epochs=3000
show_every=500
def total_loss(c_loss,s_loss,alpha,beta):
loss=alpha*c_loss+beta*s_loss
return loss
results=[]
for i in range(epochs):
target_f=get_features(target,vgg)
c_loss=content_loss(target_f['conv4_2'],content_f['conv4_2'])
s_loss=style_loss(style_weights,target_f,style_grams)
t_loss=total_loss(c_loss,s_loss,alpha,beta)
optimizer.zero_grad()
t_loss.backward()
optimizer.step()
if i% show_every ==0:
print("Total loss at each epoch{}:{}".format(i,t_loss))
results.append(deprocess(target.detach()))
plt.figure(figsize=(10,8))
for i in range(len(results)):
plt.subplot(3,2,i+1)
plt.imshow(results[i])
plt.show()
target_copy=deprocess(target.detach())
content_copy=deprocess(content_p)
fig,(ax1,ax2)=plt.subplots(1,2,figsize=(10,5))
ax1.imshow(target_copy)
ax2.imshow(content_copy)