funcai / funcai-php
高性能、业界领先的PHP机器学习库
v0.5.4
2021-11-25 21:05 UTC
Requires
- php: ^7.4.0|^8.0
- ext-curl: *
- ext-ffi: *
- ext-gd: *
- ext-json: *
- ext-phar: *
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.1
- phpstan/phpstan: ^0.12.98
- phpunit/phpunit: ^9
- dev-main
- v0.5.4
- v0.5.3
- v0.5.2
- v0.5.1
- v0.5.0
- v0.4.3
- v0.4.2
- v0.4.1
- v0.4.0
- v0.3.0
- v0.2.2
- v0.2.1
- v0.2.0
- v0.1.6
- v0.1.5
- v0.1.4
- v0.1.3
- v0.1.2
- v0.1.1
- dev-feature/add-image-classification-application
- dev-feature/update-tensorflow-to-2.6
- dev-feature/add_applications_export
- dev-feature/load_custom_op
- dev-feature/generate-headlines
This package is auto-updated.
Last update: 2024-08-26 03:15:10 UTC
README
🌟 FuncAI PHP 🌟
FuncAI 是一个高性能、业界领先的PHP机器学习库。
它没有依赖,可以在PHP运行的地方运行。
🖼️ 图像风格化 🖼️
将一个图像的风格应用到另一个图像上。示例
用途
- 生成用户提供的图像的艺术版本
- 确保封面图像的风格一致
- 用于匿名头像
致谢
🏷️ 图像分类 🏷️
了解图像中的内容。从21.825个类别中返回前5个类别。示例
用途
- 使您的图像可通过内容进行搜索
- 自动生成图像名称或alt属性
- 根据内容对图像进行分组
致谢
未来应用
- 图像识别 - 为给定图像获取标签(进行中)
- 图像缩放 - 增加图像的大小(进行中)
- 情感分析 - 确定用户生成的文本是积极的还是消极的(进行中)
- 时间序列预测 - 根据过去事件预测未来会发生什么(计划中)
- 文本摘要 - 从给定文本生成摘要(进行中)
- 翻译 - 将您的文本从一种语言翻译成另一种语言(计划中,https://ai.googleblog.com/2017/04/introducing-tf-seq2seq-open-source.html,https://hugging-face.cn/facebook/mbart-large-50-many-to-many-mmt,https://ggdocs.cn/seq2seq/nmt/)
如果您有未列出的用例,请创建一个 问题 并解释您想做什么。
功能
- 无处不在运行 - 您只需要PHP,不需要其他任何东西
- 超级简单的API - 不需要机器学习知识
- 许多应用 - 准备好使用的广泛机器学习应用
安装
1. 通过 composer 安装包
composer require funcai/funcai-php
2. 下载tensorflow库
php vendor/funcai/funcai-php/install.php
这将tensorflow下载到 ./tensorflow
。
3. 下载一个模型
php vendor/funcai/funcai-php/install-stylization.php
这将风格化模型下载到 ./models
4. 配置模型文件夹
您需要将模型文件夹移动到永久位置。例如,将其移动到服务器上的 /var/www/models
。在这种情况下,请确保相应地设置基本路径
\FuncAI\Config::setModelBasePath('/var/www/models');
您还可以直接将文件夹移动到您的项目中并将它们存入git,但文件夹可能非常大(100 Mb到多个Gb)。
使用方法
完成安装步骤后,您可以运行第一个预测
\FuncAI\Config::setLibPath('./tensorflow/'); // This should point to the path from step 2
\FuncAI\Config::setModelBasePath('./models'); // This should point to the path from step 4
$model = new \FuncAI\Models\Stylization();
$model->predict([
__DIR__ . '/sample_data/prince-akachi.jpg',
__DIR__ . '/sample_data/style.jpg',
]);
这将输出风格化图像到 ./out.jpg
。
要求
- PHP >= 7.4 在Linux上
关于机器学习
待办事项
- 选择正确的任务(对计算机来说容易,对人类来说困难/重复)
- 责任 (https://tensorflowcn.cn/responsible_ai)
- 不确定性
- 具体任务
如何运行docker文件
- 运行
docker-compose up -d
- 运行
docker-compose exec app bash
- 运行
php example.php
架构
- 使用 FFI 与tensorflow进行预测交互
- 使用自定义的c++程序进行训练(进行中)
- 目前支持在Linux上运行,具有CPU支持
待办事项
- 修复tf_singlefile.h中libtensorflow.so的路径
- 寻找更好的方式下载/托管模型
- 检查内存泄露
开发
Docker(可选,但推荐)
安装 Docker。
下载efficientnet模型
为了运行示例文件,您需要运行以下docker命令,该命令将下载efficientnet模型并将其保存为正确的文件格式
docker run -it --rm -v $PWD:/code -w /code tensorflow/tensorflow:2.3.0 python scripts/generate/efficientnet.py
或者,如果您已经安装了python3,您可以直接运行
pip3 install tensorflow
python3 scripts/generate/efficientnet.py
运行提供的Docker容器(可选)
要启动提供的Docker容器,该容器提供了php7.4的安装,请运行
docker-compose up -d
之后运行
docker-compose exec app bash
以获取docker容器内的终端。
或者您可以在本地设置PHP 7.4环境并使用它。
更好的phpstorm支持(可选)
进入您的设置,打开“语言与框架 -> PHP -> PHP运行时 -> 其他”。确保“FFI”被勾选。