一个类keras的api深度学习框架,由numpy实现

shinnosuke的Python项目详细描述


新诺书:深度学习框架

说明

  1. 基于numpy(CPU版本)

  2. 完全由python实现

  3. 类似路边石的API

  4. 图形用于构造系统

  5. 用于深入学习学习

功能

  1. python自带的

  2. 类似路边石的API

  3. 易于启动

  4. 提供了常用的模型:dense、conv2d、maxpooling2d、lstm、simplernn等

  5. 几个基本网络示例

  6. 实现了时序模型和功能模型

  7. 支持自动加载

  8. 对正向图和反向图进行训练

安装

要求(推荐)

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

  • 获取批次(生成小批次)

  • 分类(将输入转换为一个热向量/矩阵)

  • 级联(在指定轴中具有相同形状的级联节点)

  • 焊盘序列(焊盘序列的长度相同)

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
JAVAutil。整数java的扫描器键盘输入   java通知运行后立即崩溃   java如何在一个只能由类修改而不能由其实例修改的类中生成静态变量?   数据库Java字段猜测   返回值周围的java括号为什么?   java Android更新通讯录中的联系人   一个消费者正在读取数据   java是否可以通过编程方式为蓝牙配对设置pin?   java Spring引导和buildResponseEntity()   java为什么序列化可以在没有实现可序列化的情况下工作   Java同步无助于相互排斥   twitter Java Twitter4J未在推文下显示源标签   为什么Javasocket不支持中断处理?