You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

3_NN_FC_2.py 1.9 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. import torch
  2. import torch.nn as nn
  3. import torch.nn.functional as F
  4. import torch.optim as optim
  5. from torch.autograd import Variable
  6. from torchvision import datasets, transforms
  7. # Training settings
  8. batch_size = 64
  9. # MNIST Dataset
  10. dataset_path = "../data/mnist"
  11. train_dataset = datasets.MNIST(root=dataset_path,
  12. train=True,
  13. transform=transforms.ToTensor(),
  14. download=True)
  15. test_dataset = datasets.MNIST(root=dataset_path,
  16. train=False,
  17. transform=transforms.ToTensor())
  18. # Data Loader (Input Pipeline)
  19. train_loader = torch.utils.data.DataLoader(dataset=train_dataset,
  20. batch_size=batch_size,
  21. shuffle=True)
  22. test_loader = torch.utils.data.DataLoader(dataset=test_dataset,
  23. batch_size=batch_size,
  24. shuffle=False)
  25. # define Network
  26. seq_net = nn.Sequential(
  27. nn.Linear(28*28, 300),
  28. nn.ReLU(),
  29. nn.Linear(300, 100),
  30. nn.ReLU(),
  31. nn.Linear(100, 10)
  32. )
  33. # define optimizer & criterion
  34. param = seq_net.parameters()
  35. optim = torch.optim.Adam(param, 0.01)
  36. criterion = nn.CrossEntropyLoss()
  37. # train the network
  38. for e in range(100):
  39. for batch_idx, (data, target) in enumerate(train_loader):
  40. data, target = Variable(data), Variable(target)
  41. data = data.view(-1, 784)
  42. out = seq_net(data)
  43. loss = criterion(out, target)
  44. optim.zero_grad()
  45. loss.backward()
  46. optim.step()
  47. if batch_idx % 100 == 0:
  48. pred = out.data.max(1, keepdim=True)[1]
  49. c = float(pred.eq(target.data.view_as(pred)).cpu().sum())/out.size(0)
  50. print("epoch: %5d, loss: %f, acc: %f" %
  51. (e+1, loss.data[0], c))

机器学习越来越多应用到飞行器、机器人等领域,其目的是利用计算机实现类似人类的智能,从而实现装备的智能化与无人化。本课程旨在引导学生掌握机器学习的基本知识、典型方法与技术,通过具体的应用案例激发学生对该学科的兴趣,鼓励学生能够从人工智能的角度来分析、解决飞行器、机器人所面临的问题和挑战。本课程主要内容包括Python编程基础,机器学习模型,无监督学习、监督学习、深度学习基础知识与实现,并学习如何利用机器学习解决实际问题,从而全面提升自我的《综合能力》。