# Print iter number, loss, name and guess if iter % print_every == 0: guess, guess_i = char_from_output(output) correct = '✓' if guess == target else '✗ (%s)' % target print('%d %d%% (%s) %.4f %s / %s %s' % (iter, iter / n_iters * 100, timeSince(start), loss, sequence, guess, correct)) # Add current loss avg to list of losses if iter % plot_every == 0: all_losses.append(current_loss / plot_every) current_loss = 0 if args.sanity: print("-"*20) print("Testing generation") hidden = rnn.initHidden() start = Variable(sequence_to_tensor("he")) _, hidden = rnn(start[0], hidden) output, hidden = rnn(start[1], hidden) input = "he" print("{}".format(input),end='') for i in range(50): hidden = rnn.initHidden() start = Variable(sequence_to_tensor(input)) _, hidden = rnn(start[0], hidden) output, hidden = rnn(start[1], hidden) guess, _ = char_from_output(output) input = input[1]+guess print("{}".format(guess),end='') torch.save(rnn.state_dict(),".saved_model")
print( f'There are {n_categories} languages.\nNumber of family name per language:' ) for categ in train_data.keys(): print(' {}\t {}'.format(categ, len(train_data[categ]))) ### create model n_hidden = 128 model_net = RNN(n_letters, n_hidden, n_categories) ### Tensorboard visualization of the network # - create (any valid) input data # - visualize the built model in tensorboeard category, line, category_tensor, line_tensor = randomTrainingExample( all_categories, train_data) hidden = model_net.initHidden() tb_writer.add_graph(model_net, (line_tensor[0], hidden)) # tb_writer.close() #### training criterion = torch.nn.NLLLoss() # the RNN already has a softmax as output learning_rate = 0.005 def train(category_tensor, line_tensor): hidden = model_net.initHidden() model_net.zero_grad() for i in range(line_tensor.size()[0]): output, hidden = model_net(line_tensor[i], hidden)