Skip to main content

This is a network.

Project description

Mrdflow 1.1.0 beta

Based by numpy

基于numpy构建

下载方式

pip install mrdflow

使用说明:

1 autograd

1.1 Tensor数组

Tensor是autograd的核心,你可以通过以下方式创建Tensor
import mrdflow.autograd as ag
x = ag.arange(12)
#创建一个shape为(12,)的Tensor数组x,其功能等同于numpy.arange.
y = ag.zeros(12,12,grad=True)
#创建一个shape为(12,12)的Tensor数组y,其功能等同于numpy.zeros,你可以将grad设置为True,这样可以自动求导
z = ag.randn(12,12,grad=True)
#创建一个shape为(12,12)的Tensor数组z,其功能等同于numpy.random.randn,你可以将grad设置为True,这样可以自动求导
可以使用Tensor.gradient求导
import mrdflow.autograd as ag
x = ag.arange(12)
y = ag.sin(x/2)
y.gradient()
print(x.grad)
#求导出y对x导数
Tensor内置了许多函数,以下是个例子
import mrdflow.autograd as ag
import numpy as np
x = ag.arange(12).reshape(3,4)
y = ag.arange(12).reshape(4,3)
print(ag.dot(x,y))
#ag.dot:矩阵乘法函数
c = x.F
c = x.T
#Tensor.F:归一化,等同于numpy.ndarray.Flatten()
#Tensor.T:矩阵转置,等同于numpy.transpose(x)
v = x.numpy()
#将x转换成numpy.ndarray
Tensor数组无法直接转换成numpy数组,必须通过Tensor.numpy()进行转换

1.2 Op算子

Tensor数组的运算是基于Op算子的,无论是Exp还是矩阵乘法。Op算子有2个属性,分别是compute和gradient。compute处理计算,gradient进行反向求导。
import mrdflow.autograd as ag
class TestOp(ag.Op):
    def compute(inputs:list):
        """进行运算操作,将您的计算结果保存为self.re"""
        return Tensor(self.re,op=self,grad=True)
    def gradient(self,inputs,grad):
        inputs[0].backward(grad)
        #grad*导数值

2 神经网络

2.1 mnist

下面是用mrdflow训练模型识别手写数字的例子。请确保下载好mnist.npz文件,[下载链接](https://www.kaggle.com/datasets/vikramtiwari/mnist-numpy/download)
import mrdflow as mf
from mrdflow import autograd as ag
import numpy as np
data = np.load('mnist.npz')
x_train = data['x_train']
y_train = data['y_train']
def x_train_data(x):
    return ag.Tensor(x)/255
def one_hot(y):
    v = ag.zeros(10)
    v[y] = 1
    return v
x_train = list(map(x_train_data,x_train))
y_train = list(map(one_hot,y_train))
model = mf.Sequential([mf.Conv2d([28,28],1,[5,5]),
                       mf.MaxPooling2d([24,24],[4,4]),
                       mf.Dense(36,10,activation=mf.softmax)])
model.compile(optimizer=mf.Adam)
model.fit(x=x_train,y=y_train,epoch=1000,batch_size=100)
model.save('mnist.model')
#保存模型

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mrdflow-1.1.0.tar.gz (172.3 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page