2026/9/5 22:46:48

Termux:从零开始在 Android 终端跑通机器学习与深度学习模型

Termux:从零开始在 Android 终端跑通机器学习与深度学习模型 Termux从零开始在 Android 终端跑通机器学习与深度学习模型【免费下载链接】termux-appTermux - a terminal emulator application for Android OS extendible by variety of packages.项目地址: https://gitcode.com/GitHub_Trending/te/termux-app刚在手机上装好 Termux又听说它真能跑机器学习和深度学习这篇文章按顺序回答四个问题你的手机够不够格、能跑什么、怎么跑快、上限在哪。全文基于 4GB 内存的中端手机实测所有代码可直接运行不需要 GPU。 能不能跑先看架构和内存动手之前先查三个数字架构、内存、Android 版本。架构可行性建议aarch64arm64✅体验最顺本文主线armv732 位✅编译慢深度学习不建议碰x86_64✅可以但用户少、边角问题多内存比 CPU 更决定体验。经典机器学习决策树、逻辑回归、SVM2GB 内存就能跑深度学习训练建议 4GB 起步——一个小 CNN 加上一批图像数据就能吃掉几百 MBAndroid 的 OOM killer 下手时不会打招呼。还没装 Termux 的话先从 F-Droid 装一个这是最稳的渠道。更新系统并装好 Python 科学计算栈几条命令看网速大概十分钟pkg update pkg upgrade -y pkg install -y python pip install --upgrade pip pip install numpy scikit-learn一行验证python -c import numpy as np; print(np.__version__, np.random.rand(3, 3).sum())能打印出版本号和一个随机数就算进场了。能跑什么30 秒训好一个手写数字分类器Termux 机器学习的第一站是 scikit-learn纯 CPU、无 GPU 依赖、训练时间以秒计。这里不用老生常谈的鸢尾花直接拿 sklearn 自带的手写数字数据集8x8 像素、1797 个样本数据跟着库走不用下载from sklearn.datasets import load_digits from sklearn.model_selection import train_test_split from sklearn.tree import DecisionTreeClassifier from sklearn.metrics import accuracy_score digits load_digits() X, y digits.data, digits.target X_train, X_test, y_train, y_test train_test_split(X, y, test_size0.25, random_state42) clf DecisionTreeClassifier(max_depth30, random_state42) clf.fit(X_train, y_train) print(手写数字决策树准确率:, accuracy_score(y_test, clf.predict(X_test)))在测试机上fit两秒内结束准确率通常 95% 以上。这一步的意义不是 95%而是让你确认三件事环境能用、数据链路通了、结果可信。经典机器学习做到这个程度基本就收官了——这类任务手机确实吃得消。没有 GPUPyTorch 怎么在 Termux 里训练小 CNNPyTorch 上 Termux 不是玄学。aarch64 设备上pip install torch直接就是 CPU 版包体几百 MB下载过程要有耐心。armv7 机器建议跳过深度学习把经典机器学习做扎实pip install torch torchvision训练脚本里先做两件事顶部加torch.set_num_threads(4)限制线程数给系统留一颗核batch size 从 64 起步手机内存是稀缺资源。下面是一个训 MNIST 的小 CNN两层卷积加一层全连接约 3 万参数import torch from torchvision import datasets, transforms torch.set_num_threads(4) # 给系统留一颗核 tf transforms.Compose([transforms.ToTensor(), transforms.Normalize((0.1307,), (0.3081,))]) train datasets.MNIST(./data, trainTrue, downloadTrue, transformtf) test datasets.MNIST(./data, trainFalse, downloadTrue, transformtf) class SmallCNN(torch.nn.Module): def __init__(self): super().__init__() self.net torch.nn.Sequential( torch.nn.Conv2d(1, 8, 3), torch.nn.ReLU(), torch.nn.MaxPool2d(2), torch.nn.Conv2d(8, 16, 3), torch.nn.ReLU(), torch.nn.MaxPool2d(2), torch.nn.Flatten(), torch.nn.Linear(16 * 5 * 5, 10), ) def forward(self, x): return self.net(x) model SmallCNN() opt torch.optim.Adam(model.parameters(), lr1e-3) lossf torch.nn.CrossEntropyLoss() for epoch in range(3): for X, y in torch.utils.data.DataLoader(train, batch_size64, shuffleTrue): lossf(model(X), y).backward() opt.step() opt.zero_grad() correct sum(model(X).argmax(1).eq(y).sum().item() for X, y in torch.utils.data.DataLoader(test, batch_size256)) print(fEpoch {epoch1} 完成, 测试准确率 {correct/len(test):.2%})中端机上 3 个 epoch 大约 5–15 分钟结束时准确率落在 97% 上下。第一次在手机上看到准确率往上走感觉有点像第一次在服务器上打出 Hello World——只不过这台服务器揣在兜里。⚡ 怎么跑快线程数、小 batch、精简模型手机和桌面最大的区别不是慢而是每样资源都有上限。遇到问题先查这张表症状常见原因第一反应训练卡死、进程被杀batch 太大模型吃内存batch 降到 64通道数减半比预期慢线程占满、系统抢不到核、降频torch.set_num_threads(4)短时训练数据集把内部存储下满数据默认落在 $HOMEtermux-setup-storage授权数据挪到 /sdcard机身发烫、速度掉下去长时间满载降线程数别挂机过夜表里两条值得第一次就做好小 batch。batch_size 是内存占用的最直接开关。移动端做深度学习32–128 是舒适区1024 的大 batch 留给桌面机梯度噪声会大一点Adam 下影响很小。精简模型。训练前问自己一句这一层/这个通道必要吗通道减半、层数减一、输入分辨率从 224 降到 64MNIST 级别的任务 1 万参数足够用。量化、ONNX Runtime 推理这些手段也能进一步压推理开销但入门阶段模型做小 线程配好的性价比更高。能跑多大移动端深度学习的预期与上限基于中端 4GB 手机给一份诚实的上限表任务模型量级耗时结论经典 ML万级样本决策树 / 随机森林秒级流畅MNIST 级 CNN 训练~3 万参数5–15 分钟舒适CIFAR-10 CNN 训练10 万 参数数小时可行但痛苦GB 级模型推理Stable Diffusion、7B LLM分钟到小时硬核玩家训完的模型怎么用起来最实用的做法是把它变成服务。装一下flasksklearn 训练出的模型还能用 joblib 直接加载from flask import Flask, request, jsonify import joblib model joblib.load(digit_clf.joblib) # 训练时记得 joblib.dump 存一份 app Flask(__name__) app.route(/predict, methods[POST]) def predict(): x request.json[pixels] # 64 维向量 return jsonify({label: int(model.predict([x])[0])}) app.run(host0.0.0.0, port5000)局域网里的另一台设备直接curl这个/predict接口就能拿到预测结果。想让它长期挂着先执行termux-wake-lock不然系统会顺手把服务睡掉。今晚就能迈出的第一步不用一上来就下 1GB 的数据集。打开 Termux把能跑什么那一节的手写数字分类器跑一遍十分钟的事跑完你就知道自己这台手机在移动端 AI 开发里处于什么位置。之后遇到卡点官方文档 和pkg search会比任何教程都先给你答案。【免费下载链接】termux-appTermux - a terminal emulator application for Android OS extendible by variety of packages.项目地址: https://gitcode.com/GitHub_Trending/te/termux-app创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考