代码参考bilibili UP主——小黑黑讲AI
【bilibili】基于pytorch实现一个神经网络,训练非线性的分类模型
本人并不是这位UP。
前言部分记录下总是容易出错的地方
- 总是提示说mat1和mat2的数据类型不符,这个太坑了,numpy的float是float64,要换成torch的float32,或者直接torch.float类型就行了;
- 有关tensor,确实乱七八糟的,一定要自己看看是不是想要的shape
- 变量命名方式,可以参考torch官网来,保证自己代码的风格一致,比如X是feature,y是label啥的,pred是测试的结果。
# 制造数据
import numpy as np
import matplotlib.pyplot as plt
def make_data(num, seed=10):
np.random.seed(seed)
r_rand = np.random.standard_normal(num)*0.3
t_rand = np.random.random(num)*np.pi*2
center = np.array([[0,0]]*num)+np.array([r_rand*np.cos(t_rand),r_rand*np.sin(t_rand)]).T
plt.scatter(center[:,0],center[:,1], c='r')
r_rand = np.random.standard_normal(num)*0.3+2
t_rand = np.random.random(num)*np.pi*2
center1 = np.array([[0,0]]*num)+np.array([r_rand*np.cos(t_rand),r_rand*np.sin(t_rand)]).T
plt.scatter(center1[:,0],center1