optimtool训练分类任务
生成符号神经网络是optimtool这个优化工具训练神经网络的前提,推荐下载2.8.3版本(加速函数计算)和github.com/linjing-lab/optimtool的最新版(优化Hessian计算):
python
pip install optimtool==2.8.3
下载最新版的代码:
python
git clone https://github.com/linjing-lab/optimtool.git
cd optimtool
pip install -e . --verbose
分类示例
python
X = np.array([
[2.0, 1.0, 0.5, 0.1],
[5.1, 3.1, 2.1, 1.05],
[5.0, 3.0, 2.0, 1.0],
[2.1, 0.9, 0.55, 0.15],
[8.0, 5.0, 4.0, 2.0],
[8.2, 5.2, 4.2, 2.1],
], dtype=np.float64)
y = np.array([0, 1, 1, 0, 2, 2], dtype=np.int64)
f_sym, params = gen_nn(X, y, hidden_dims=[2,])
ou.gradient_descent.barzilar_borwein(f_sym, params, np.ones(len(params)).tolist(), verbose=True, epsilon=1e-2)
这是一个典型的三分类任务,数据规模可以根据自己电脑或服务器的芯片性能来决定,optimtool是可以展示迭代过程的优化工具
输出展示

其余低版本因为dict(zip())速度的问题,不适用于这个示例。