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.

2_linear_regression_2.py 1.6 kB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. import torch
  2. from torch import nn, optim
  3. from torch.autograd import Variable
  4. import numpy as np
  5. import matplotlib.pyplot as plt
  6. torch.manual_seed(2018)
  7. # model's real-parameters
  8. w_target = 3
  9. b_target = 10
  10. # generate data
  11. n_data = 100
  12. x_train = np.random.rand(n_data, 1)*20 - 10
  13. y_train = w_target*x_train + b_target + (np.random.randn(n_data, 1)*10-5.0)
  14. # draw the data
  15. plt.plot(x_train, y_train, 'bo')
  16. plt.show()
  17. # convert to tensor
  18. x_train = torch.from_numpy(x_train).float()
  19. y_train = torch.from_numpy(y_train).float()
  20. # Linear Regression Model
  21. class LinearRegression(nn.Module):
  22. def __init__(self):
  23. super(LinearRegression, self).__init__()
  24. self.linear = nn.Linear(1, 1) # input and output is 1 dimension
  25. def forward(self, x):
  26. out = self.linear(x)
  27. return out
  28. # create the model
  29. model = LinearRegression()
  30. # 定义loss和优化函数
  31. criterion = nn.MSELoss()
  32. optimizer = optim.SGD(model.parameters(), lr=1e-4)
  33. # 开始训练
  34. num_epochs = 1000
  35. for epoch in range(num_epochs):
  36. inputs = Variable(x_train)
  37. target = Variable(y_train)
  38. # forward
  39. out = model(inputs)
  40. loss = criterion(out, target)
  41. # backward
  42. optimizer.zero_grad()
  43. loss.backward()
  44. optimizer.step()
  45. if (epoch+1) % 20 == 0:
  46. print('Epoch[{}/{}], loss: {:.6f}'
  47. .format(epoch+1, num_epochs, loss.data[0]))
  48. # do evaluation & plot
  49. model.eval()
  50. predict = model(Variable(x_train))
  51. predict = predict.data.numpy()
  52. plt.plot(x_train.numpy(), y_train.numpy(), 'bo', label='Real')
  53. plt.plot(x_train.numpy(), predict, 'ro', label='Estimated')
  54. plt.legend()
  55. plt.show()

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