import numpy as np import json img_codes = np.load("data/image_codes.npy") captions = json.load(open('data/captions_tokenized.json')) for img_i in range(len(captions)): for caption_i inrange(len(captions[img_i])): sentence = captions[img_i][caption_i] captions[img_i][caption_i] = ["#START#"] + sentence.split(' ') + ["#END#"] network = CaptionNet(n_tokens).to(DEVICE) optimizer = torch.optim.Adam(network.parameters(), lr=1e-3) batch_size = 128 n_epochs = 100 n_batches_per_epoch = 50 n_validation_batches = 5 for epoch in range(n_epochs): train_loss = 0 network.train() for _ in tqdm(range(n_batches_per_epoch)): images, captions = generate_batch(train_img_codes, train_captions, batch_size) images = images.to(DEVICE) captions = captions.to(DEVICE) loss_t = compute_loss(network, images, captions) # clear old gradients; do a backward pass to get new gradients; then train with opt # YOUR CODE HERE train_loss += loss_t.detach().cpu().numpy() train_loss /= n_batches_per_epoch val_loss = 0 network.eval() for _ inrange(n_validation_batches): images, captions = generate_batch(val_img_codes, val_captions, batch_size) images = images.to(DEVICE) captions = captions.to(DEVICE) with torch.no_grad(): loss_t = compute_loss(network, images, captions) val_loss += loss_t.detach().cpu().numpy() val_loss /= n_validation_batches clear_output() print('\nEpoch: {}, train loss: {}, val
import numpy as np import json img_codes = np.load("data/image_codes.npy") captions = json.load(open('data/captions_tokenized.json')) for img_i in range(len(captions)): for caption_i inrange(len(captions[img_i])): sentence = captions[img_i][caption_i] captions[img_i][caption_i] = ["#START#"] + sentence.split(' ') + ["#END#"] network = CaptionNet(n_tokens).to(DEVICE) optimizer = torch.optim.Adam(network.parameters(), lr=1e-3) batch_size = 128 n_epochs = 100 n_batches_per_epoch = 50 n_validation_batches = 5 for epoch in range(n_epochs): train_loss = 0 network.train() for _ in tqdm(range(n_batches_per_epoch)): images, captions = generate_batch(train_img_codes, train_captions, batch_size) images = images.to(DEVICE) captions = captions.to(DEVICE) loss_t = compute_loss(network, images, captions) # clear old gradients; do a backward pass to get new gradients; then train with opt # YOUR CODE HERE train_loss += loss_t.detach().cpu().numpy() train_loss /= n_batches_per_epoch val_loss = 0 network.eval() for _ inrange(n_validation_batches): images, captions = generate_batch(val_img_codes, val_captions, batch_size) images = images.to(DEVICE) captions = captions.to(DEVICE) with torch.no_grad(): loss_t = compute_loss(network, images, captions) val_loss += loss_t.detach().cpu().numpy() val_loss /= n_validation_batches clear_output() print('\nEpoch: {}, train loss: {}, val
Computer Networking: A Top-Down Approach (7th Edition)
7th Edition
ISBN:9780133594140
Author:James Kurose, Keith Ross
Publisher:James Kurose, Keith Ross
Chapter1: Computer Networks And The Internet
Section: Chapter Questions
Problem R1RQ: What is the difference between a host and an end system? List several different types of end...
Related questions
Question
import numpy as np
import json
img_codes = np.load("data/image_codes.npy")
captions = json.load(open('data/captions_tokenized.json'))
for img_i in range(len(captions)):
for caption_i inrange(len(captions[img_i])):
sentence = captions[img_i][caption_i]
captions[img_i][caption_i] = ["#START#"] + sentence.split(' ') + ["#END#"]
network = CaptionNet(n_tokens).to(DEVICE)
optimizer = torch.optim.Adam(network.parameters(), lr=1e-3)
batch_size = 128
n_epochs = 100
n_batches_per_epoch = 50
n_validation_batches = 5
for epoch in range(n_epochs):
train_loss = 0
network.train()
for _ in tqdm(range(n_batches_per_epoch)):
images, captions = generate_batch(train_img_codes, train_captions, batch_size)
images = images.to(DEVICE)
captions = captions.to(DEVICE)
loss_t = compute_loss(network, images, captions)
# clear old gradients; do a backward pass to get new gradients; then train with opt
# YOUR CODE HERE
train_loss += loss_t.detach().cpu().numpy()
train_loss /= n_batches_per_epoch
val_loss = 0
network.eval()
for _ inrange(n_validation_batches):
images, captions = generate_batch(val_img_codes, val_captions, batch_size)
images = images.to(DEVICE)
captions = captions.to(DEVICE)
with torch.no_grad():
loss_t = compute_loss(network, images, captions)
val_loss += loss_t.detach().cpu().numpy()
val_loss /= n_validation_batches
clear_output()
print('\nEpoch: {}, train loss: {}, val loss: {}'.format(epoch, train_loss, val_loss))
print("Finished!")
#for reference and more detail go to link---> https://colab.research.google.com/github/hse-aml/intro-to-dl-pytorch/blob/main/week06/week06_final_project_image_captioning.ipynb#scrollTo=x_wH1bYu-QK8
Expert Solution
This question has been solved!
Explore an expertly crafted, step-by-step solution for a thorough understanding of key concepts.
Step by step
Solved in 3 steps with 2 images
Recommended textbooks for you
Computer Networking: A Top-Down Approach (7th Edi…
Computer Engineering
ISBN:
9780133594140
Author:
James Kurose, Keith Ross
Publisher:
PEARSON
Computer Organization and Design MIPS Edition, Fi…
Computer Engineering
ISBN:
9780124077263
Author:
David A. Patterson, John L. Hennessy
Publisher:
Elsevier Science
Network+ Guide to Networks (MindTap Course List)
Computer Engineering
ISBN:
9781337569330
Author:
Jill West, Tamara Dean, Jean Andrews
Publisher:
Cengage Learning
Computer Networking: A Top-Down Approach (7th Edi…
Computer Engineering
ISBN:
9780133594140
Author:
James Kurose, Keith Ross
Publisher:
PEARSON
Computer Organization and Design MIPS Edition, Fi…
Computer Engineering
ISBN:
9780124077263
Author:
David A. Patterson, John L. Hennessy
Publisher:
Elsevier Science
Network+ Guide to Networks (MindTap Course List)
Computer Engineering
ISBN:
9781337569330
Author:
Jill West, Tamara Dean, Jean Andrews
Publisher:
Cengage Learning
Concepts of Database Management
Computer Engineering
ISBN:
9781337093422
Author:
Joy L. Starks, Philip J. Pratt, Mary Z. Last
Publisher:
Cengage Learning
Prelude to Programming
Computer Engineering
ISBN:
9780133750423
Author:
VENIT, Stewart
Publisher:
Pearson Education
Sc Business Data Communications and Networking, T…
Computer Engineering
ISBN:
9781119368830
Author:
FITZGERALD
Publisher:
WILEY