Rindow Neural Networks 是一个高级神经网络库。可以使用PHP实现强大的机器学习。
- 它可以为DNN、CNN、RNN 和 Attention 构建机器学习模型
- 内置提供了几个图像分类和文本翻译的案例例子
- 使用的PHP扩展的性能是tensorflow CPU 的两倍
- 不需要安装复杂的环境,安装三个扩展,使用composer即可
支持rindow_openblas扩展,可以在windows上使用GPU加速,不过这个特性目前还在试验阶段。
本文给大家介绍一下这个框架,并且分享一下测试的经验。
这个库就像Python中的Keras一样,他们在代码接口上都差不多.
对环境所要的依赖如下,后面会详细介绍:
- PHP 7.2, 7.3, 7.4, 8.0.
- Windows10 or Linux environment 需要安装rindow_openblas扩展.
- Rindow Math Matrix
- Rindow Math Plot ( 用于生成图标)
- GD / GD2 extension ( 用于渲染图表)
- pdo_sqlite extension ( 用于存储模型数据)
- Rindow OpenBLAS extension ( 进行高性能的计算)
- Rindow OpenCL extension / Rindow CLBlast extension ( 使用GPU加速,目前还在试验阶段)
安装
Rindow Neural Networks要求如下:
- PHP 7.2, 7.3, 7.4, 8.0
- Windows 10 20H2
- Ubuntu 18.04, 20.04
- AMD CPU/APU 64bit(SSE2)
- OpenBLAS (0.3.13 Windows-x64, 0.3.8 Ubuntu-2004, 0.2.20 Ubuntu-1804)
- CLBlast (1.5.1 Windows-x64)
首先我们要下载安装PHP并且设置PHP的目录到%PATH%环境中,这里要注意,不要使用nts版本,比如phpstudy内置的php版本都是不可以用的,去PHP官网下载Thread safe的版本。
我这里使用的PHP7.4。
把PHP解压到指定目录,并且在系统中设置%PATH%目录。
然后修改php.ini,设置如下几个配置:
- memory_limit = 8G
- extension = rindow_openblas
- extension = pdo_sqlite
- extension = gd2
- extension = mbstring
- extension = openssl
其中可以看到一个陌生的扩展rindow_openblas,这需要我们去下载这个扩展放置到php的ext目录下:
https://github.com/rindow/rindow-openblas/releases
还要下载另一个开源项目OpenBLAS,并且设置它的bin目录到%PATH%环境中。
https://github.com/xianyi/OpenBLAS/releases
然后再命令行中运行 php -m 看看是否出错:
C:TEMP>php -m
[PHP Modules]
...
pdo_sqlite
...
rindow_openblas
...
C:TEMP>
剩下还有三个扩展不是必须的,但是它的案例里实际上是需要的,所以也是要安装:
下载前两个项目,他们是php 的扩展,放到php的ext目录并在php.ini中开启。
第三个项目是一个开源的计算库,下载解压然后设置它的bin目录到%PATH%环境中。
测试案例
这时候我们就可以跑一跑他提供的案例了。
新建一个文件夹,然后用composer 引入下面两个包:
composer require rindow/rindow-neuralnetworks
composer require rindow/rindow/rindow-math-plot
然后把这个文件夹的文件复制出来:
确保正常引入autoload.php,我们运行一个最基本的测试,也类似所有人工智能框架的hello world的项目,识别手写数字程序,基于mnist数据集的实验。很熟悉对不对,在学习其他人工智能框架的时候见过。
我们运行这个案例看看:
php basic-image-classification.php
他会自动下载数据集并且训练模型,最终会输出一张测试效果图。
这样一个简单地数字手写的人工智能项目就玩成了。
这个项目还可以设计神经网络,自定义模型,更多的细节可以看他的文档:
https://rindow.github.io/neuralnetworks/index.html
实际上,想要玩转这个项目,需要一定的人工智能基础,仅仅是懂PHP是不够的,小编写了五年多PHP了,非常想搞一搞人工智能,现在有了PHP的神经网络项目,代码也都能看懂,但是也仅仅是把案例跑起来而已。这已经是另一片知识的海洋了。
原文标题:[rindow/rindow-neuralnetworks]PHP的神经网络库,支持GPU加速
原文地址:https://phpreturn.com/index/a621a44454dc4c.html
原文平台:PHP武器库
版权声明:本文由phpreturn.com(PHP武器库官网)原创和首发,所有权利归phpreturn(PHP武器库)所有,本站允许任何形式的转载/引用文章,但必须同时注明出处。