一个类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第三方库


热门话题
Java NIO选择器最多只能选择50个SelectionKeys?   java阻止ImageButton创建新活动   为什么Java方法“Arrays.copyOf”处理中的整数数组与处理对象数组时的行为不同   java将安卓 1.6日历字段提取到vcal   将字符串转换为双精度后的java问题   java使用Webflux,是否可以使用AOP获取用于日志记录的ServerHttpRequest   java与jTextArea的基本区别是什么。setText()和jTextArea。append()方法?   java程序执行时间|将值保存到文件或数据结构?   java如何将表示字符的整数转换为字符串?   Java LWJGL新的渲染问题windows   java GUI提供异常   java创建第二个对象使类的函数不再工作   如何在java中将000验证为3位数字?   java bigO算法的时间复杂度,可以在不重复的情况下找到最长的子串   在30像素内点击按钮后,java在两个图像之间转换   java eclipse maven nexus不可解父pom   当存在其他SecurityConstraint时,java TransportGuary机密将被忽略   重新连接后激发的java Red5客户端流断开事件   javafx聊天应用程序中连接客户端的java问题