一个类keras的api深度学习框架,由numpy实现
shinnosuke的Python项目详细描述
新诺书:深度学习框架
说明
基于numpy(CPU版本)
完全由python实现
类似路边石的API
图形用于构造系统
用于深入学习学习
功能
python自带的
类似路边石的API
易于启动
提供了常用的模型:dense、conv2d、maxpooling2d、lstm、simplernn等
几个基本网络示例
实现了时序模型和功能模型
支持自动加载
对正向图和反向图进行训练
安装
要求(推荐)
numpy=1.15.0
matplotlib=3.0.3
使用pip:
$ pip install shinnosuke
示例
Shinnosuke提供了几个ClassCIC人工智能任务:
mnist手写数字识别
- 密集型(全连接神经网络)
fromshinnosuke.modelsimportSequentialfromshinnosuke.layers.FCimportDensem=Sequential()m.add(Dense(500,activation='relu',n_in=784))#must be specify n_in if first layerm.add(Dense(10,activation='softmax'))#no need to specify n_in as shinnosuke will automatic calculate the input and output dimm.compile(optimizer='sgd',loss='sparse_categorical_crossentropy')#specify optimizer and objective,if your want to apply softmax for multi-classify tasks and your labels are one-hot vectors/matrixm,use sparse_categorical_crossentropy(recommend),otherwise use categorical_crossentropy.model.fit(trainX,trainy,batch_size=512,epochs=5,validation_ratio=0.)
- 卷积神经网络
X_input=Input(shape=(None,1,28,28))#represents batch_size,channels,height and width respectively,notice that channels must be at the axis 1 instead of -1X=Conv2D(8,(3,3),padding='VALID',initializer='normal',activation='relu')(X_input)X=MaxPooling2D((2,2))(X)X=Flatten()(X)X=Dense(10,initializer='normal',activation='softmax')(X)model=Model(inputs=X_input,outputs=X)model.compile(optimizer='sgd',loss='sparse_categorical_cross_entropy')model.fit(trainX,trainy,batch_size=256,epochs=80,validation_ratio=0.)
支持
两种型号:
1.顺序
fromshinnosuke.modelsimportSequentialfromshinnosuke.layers.FCimportDensem=Sequential()m.add(Dense(500,activation='relu',n_in=784))m.add(Dense(10,activation='softmax'))m.compile(optimizer='sgd',loss='sparse_categorical_crossentropy',learning_rate=0.1)m.fit(trainX,trainy,batch_size=512,epochs=1,validation_ratio=0.)
2.型号
fromshinnosuke.modelsimportModelfromshinnosuke.layers.FCimportDensefromshinnosuke.layers.BaseimportInputX_input=Input(shape=(None,784))X=Dense(500,activation='relu')(X_input)X=Dense(10,activation='softmax')(X)model=Model(inputs=X_input,outputs=X)model.compile(optimizer='sgd',loss='sparse_categorical_crossentropy',learning_rate=0.1)model.fit(trainX,trainy,batch_size=512,epochs=1,validation_ratio=0.)
两个基本类:
-层:
密度
conv2d
MaxPooling2d
平均池2d
激活
输入
辍学
批量规范化
时间分布
简化
LSTM
GRU(等待实施)
零填充2d
操作(包括添加、减号、乘法、matmul等层和节点的基本操作)
执行层操作来构造图形。 例如:
-节点:
- 变量
- 常数
而节点操作同时具有动态图和静态图功能
x=Variable(3)y=Variable(5)z=x+yprint(z.get_value())
#您假设得到一个值8,同时Shinnosuke构建一个图,如下所示(等待实现):
优化器
随机梯度下降
动量
rmsprop
阿达格拉德
adadelta
亚当
等待更多实现
目标
均方误差
平均绝对误差
二元交叉熵
稀疏类交叉熵
分类交叉熵
激活
relu
线性
乙状结肠
晒黑
softmax
初始化
零
一个
制服
lecununiform
格洛特制服
启发式
正常
l异常
glorotnormal
现象学
正交
规范化
正在等待实施。
utils
获取批次(生成小批次)
分类(将输入转换为一个热向量/矩阵)
级联(在指定轴中具有相同形状的级联节点)
焊盘序列(焊盘序列的长度相同)