Content
Assignment
实现TensorFlow Playground的部分功能。
数据分布为circle,暂时写成2层,一层有多个神经元;用填充的等高线画出分类边界。
Code
1. import几个库:numpy、matplotlib(画图用)、sklearn(生成data用)。
from sklearn import datasets
import numpy as np
import matplotlib.pyplot as plt
2. 生成数据集
采用的是sklearn库中的方法,factor:两个circle的远近
-> Scale factor between inner and outer circle.
X, y = datasets.make_circles(n_samples=300, noise=0.2, factor=0.3)
nn_input_dim = 2
nn_output_dim = 2
num_examples = len(X)
learning_rate = 1e-2
plt.scatter(X[:,0],X[:,1],c=y)
plt.show()
预览一下是这样的:
3. 正向推理
从输入到输出的过程。没找到sigmoid就用了双曲正切,它的导数是 1 − t a n h 2 ( ) 1-tanh^2() 1−tanh2()
def inference(x1, x2, model):
# x1:scalar是第一个特征, X维度: (2,1)是样本
X = np.hstack(([x1], [x2]