I am trying to write a program for MNIST Digit Recognition
. I am taking help from this link Kaggle Link.
When I am training my model it is showing AttributeError: 'Tensor' object has no attribute 'train_img'
I am getting the error at the time of print
However, the code is full the same and I just changed the variable name like train_img
instead of data
. My code is given below:
# module packages
from .. import config
from . import preprocess, my_model
# Loding train Data from preprocess.py
train_loader = preprocess.load_train_data()
# Loding Model from my_model.py
model = my_model.get_model()
# Define a Loss function and optimizer
optimizer = optim.Adam(params=model.parameters(), lr=0.003)
criterion = nn.CrossEntropyLoss()
# Train the network
for epoch in range(config.nb_epocs):
running_loss = 0.0
for batch_idx, (train_img, train_labels) in enumerate(train_loader):
# get the inputs; data is a list of [inputs, labels]
train_img = train_img.unsqueeze(1)
train_img, train_labels = train_img, train_labels
# zero the parameter gradients
optimizer.zero_grad()
# forward + backward + optimize
output = model(train_img)
loss = criterion(output, train_labels)
loss.backward()
optimizer.step()
# print statistics
running_loss += loss.item()
if (batch_idx + 1)% 100 == 0:
print('Train Epoch: {} [{}/{} ({:.0f}%)]\tLoss: {:.6f}'.format(
config.nb_epocs, (batch_idx + 1) * len(train_img), len(train_loader.dataset),
100. * (batch_idx + 1) / len(train_loader), loss.train_img[0]))
running_loss = 0.0
print('Finished Training')
Could you tell me what I have to do?
Another thing is, can I do validation_split
at the same time of training like Keras model_fit
?