Изменения

Перейти к: навигация, поиск

Машинное обучение на мобильных телефонах

2153 байта добавлено, 04:55, 6 января 2021
Процессоры
Однако машинное обучение стало настолько актуальным, что производители процессоров задумались о том, что бы создавать процессоры, некоторые чипы которых заточены под задачи машинного обучения.
Примерами являются такие процессоры как[http://ai-benchmark.com/ranking_processors.html Существует огромное число] процессоров для огромного числа задач, начиная от [http://neerc.ifmo.ru/wiki/index.php?title=%D0%9B%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%B0%D1%8F_%D1%80%D0%B5%D0%B3%D1%80%D0%B5%D1%81%D1%81%D0%B8%D1%8F задачи линейной регрессии] до [http://neerc.ifmo.ru/wiki/index.php?title=%D0%93%D0%BB%D1%83%D0%B1%D0%BE%D0%BA%D0%BE%D0%B5_%D0%BE%D0%B1%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D0%B5 задач глубокого обучения].
* [https://developer.qualcomm.com/software/qualcomm-neural-processing-sdk Qualcomm Neural Processing SDK]. Этот процессор заточен под работу с аудио и видео: [http://neerc.ifmo.ru/wiki/index.php?title=%D0%A0%D0%B0%D1%81%D0%BF%D0%BE%D0%B7%D0%BD%D0%B0%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D1%80%D0%B5%D1%87%D0%B8 распознавание речи], умная камера, очистка картинки от шума и подобное* [https://developer.huawei.com/consumer/en/doc/2020314 Huawei Ai]. Этот процессор заточен под [http://neerc.ifmo.ru/wiki/index.php?title=%D0%9A%D0%BE%D0%BC%D0%BF%D1%8C%D1%8E%D1%82%D0%B5%D1%80%D0%BD%D0%BE%D0%B5_%D0%B7%D1%80%D0%B5%D0%BD%D0%B8%D0%B5 компьютерное зрение], распознавание речи и [http://neerc.ifmo.ru/wiki/index.php?title=%D0%9E%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0_%D0%B5%D1%81%D1%82%D0%B5%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D0%BD%D0%BE%D0%B3%D0%BE_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B0 интерпретацию естественного языка]* [https://www.mediatek.com/innovations/artificial-intelligence NeuroPilot SDK]. Процессор заточен под [http://neerc.ifmo.ru/wiki/index.php?title=%D0%97%D0%B0%D0%B4%D0%B0%D1%87%D0%B0_%D0%BD%D0%B0%D1%85%D0%BE%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D1%8F_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%BE%D0%B2_%D0%BD%D0%B0_%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B8 отслеживание поз множества людей], идентификацию множества объектов, [https://www.kdnuggets.com/2018/10/semantic-segmentation-wiki-applications-resources.html семантическую сегментацию], [https://en.wikipedia.org/wiki/Image_segmentation обработку изображений].* [https://developer.samsung.com/neural/overview.html Samsung Neural SDK]. Заточен под обработку матриц, которые часто встречаются в задачах машинного обучения.* [https://developer.apple.com/documentation/coreml CoreML SDK]. Создан для [http://www.machinelearning.ru/wiki/index.php?title=%D0%9A%D0%BB%D0%B0%D1%81%D1%81%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F#:~:text=%D0%9A%D0%BB%D0%B0%D1%81%D1%81%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F%20%E2%80%94%20%D0%BE%D0%B4%D0%B8%D0%BD%20%D0%B8%D0%B7%20%D1%80%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%D0%BE%D0%B2%20%D0%BC%D0%B0%D1%88%D0%B8%D0%BD%D0%BD%D0%BE%D0%B3%D0%BE,%D0%AD%D1%82%D0%BE%20%D0%BC%D0%BD%D0%BE%D0%B6%D0%B5%D1%81%D1%82%D0%B2%D0%BE%20%D0%BD%D0%B0%D0%B7%D1%8B%D0%B2%D0%B0%D0%B5%D1%82%D1%81%D1%8F%20%D0%BE%D0%B1%D1%83%D1%87%D0%B0%D1%8E%D1%89%D0%B5%D0%B9%20%D0%B2%D1%8B%D0%B1%D0%BE%D1%80%D0%BA%D0%BE%D0%B9 классификации объектов], звуков, движений, текста, табличных данных, обладает [http://neerc.ifmo.ru/wiki/index.php?title=%D0%A0%D0%B5%D0%BA%D0%BE%D0%BC%D0%B5%D0%BD%D0%B4%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8B рекомендательной системой].Ниже представлены примеры таких процессоров
=== [httphttps://ai-benchmarkdeveloper.qualcomm.com/ranking_processors.html Существуетsoftware/qualcomm-neural-processing-sdk Qualcomm Neural Processing SDK] огромное число процессоров для огромного числа задач, начиная от [http://neerc.ifmo.ru/wiki/index.php?title=%D0%9B%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%B0%D1%8F_%D1%80%D0%B5%D0%B3%D1%80%D0%B5%D1%81%D1%81%D0%B8%D1%8F задачи линейной регрессии] до [http://neerc.ifmo.ru/wiki/index.php?title=%D0%93%D0%BB%D1%83%D0%B1%D0%BE%D0%BA%D0%BE%D0%B5_%D0%BE%D0%B1%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D0%B5 задач глубокого обучения].=
Этот процессор заточен под работу с аудио и видео: [http://neerc.ifmo.ru/wiki/index.php?title=%D0%A0%D0%B0%D1%81%D0%BF%D0%BE%D0%B7%D0%BD%D0%B0%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D1%80%D0%B5%D1%87%D0%B8 распознавание речи], умная камера, очистка картинки от шума и подобное.
 
[[Файл:Mobile_Phone_Machine_Learning_Snapdragon_Qualcomm_Cases_Examples.png|600px|мини|Примеры использования алгоритмов. [https://developer.qualcomm.com/software/qualcomm-neural-processing-sdk/learning-resources/ai-ml-android-neural-processing Источник]]]
 
Разработчики данного процессора делают упор на CNN сети, однако там встречаются почти все известные модели машинного обучения.
 
<code>
void executeNetwork(std::unique_ptr<zdl::SNPE::SNPE>& snpe,
std::unique_ptr<zdl::DlSystem::ITensor>& input,
std::string OutputDir,
int num)
{
static zdl::DlSystem::TensorMap outputTensorMap;
snpe->execute(input.get(), outputTensorMap);
zdl::DlSystem::StringList tensorNames = outputTensorMap.getTensorNames();
//Iterate through the output Tensor map, and print each output layer name
std::for_each( tensorNames.begin(), tensorNames.end(), [&](const char* name)
{
std::ostringstream path;
path << OutputDir << "/"
<< "Result_" << num << "/"
<< name << ".raw";
auto tensorPtr = outputTensorMap.getTensor(name);
SaveITensor(path.str(), tensorPtr);
});
}
<font color="green">// The following is a partial snippet of the function</font>
void SaveITensor(const std::string& path, const zdl::DlSystem::ITensor* tensor)
{
...
std::ofstream os(path, std::ofstream::binary);
if (!os)
{
std::cerr << "Failed to open output file for writing: " << path << "\n";
std::exit(EXIT_FAILURE);
}
for ( auto it = tensor->cbegin(); it != tensor->cend(); ++it )
{
float f = *it;
if (!os.write(reinterpret_cast<char*>(&f), sizeof(float)))
{
std::cerr << "Failed to write data to: " << path << "\n";
std::exit(EXIT_FAILURE);
}
}
}
</code>
 
Короткий пример использования ITensors
 
=== [https://developer.huawei.com/consumer/en/doc/2020314 Huawei Ai] ===
 
Этот процессор заточен под [http://neerc.ifmo.ru/wiki/index.php?title=%D0%9A%D0%BE%D0%BC%D0%BF%D1%8C%D1%8E%D1%82%D0%B5%D1%80%D0%BD%D0%BE%D0%B5_%D0%B7%D1%80%D0%B5%D0%BD%D0%B8%D0%B5 компьютерное зрение], распознавание речи и [http://neerc.ifmo.ru/wiki/index.php?title=%D0%9E%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0_%D0%B5%D1%81%D1%82%D0%B5%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D0%BD%D0%BE%D0%B3%D0%BE_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B0 интерпретацию естественного языка]
 
===[https://www.mediatek.com/innovations/artificial-intelligence NeuroPilot SDK] ===
 
Процессор заточен под [http://neerc.ifmo.ru/wiki/index.php?title=%D0%97%D0%B0%D0%B4%D0%B0%D1%87%D0%B0_%D0%BD%D0%B0%D1%85%D0%BE%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D1%8F_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%BE%D0%B2_%D0%BD%D0%B0_%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B8 отслеживание поз множества людей], идентификацию множества объектов, [https://www.kdnuggets.com/2018/10/semantic-segmentation-wiki-applications-resources.html семантическую сегментацию], [https://en.wikipedia.org/wiki/Image_segmentation обработку изображений].
 
=== [https://developer.samsung.com/neural/overview.html Samsung Neural SDK] ===
Заточен под обработку матриц, которые часто встречаются в задачах машинного обучения.
 
=== [https://developer.apple.com/documentation/coreml CoreML SDK] ===
 
Создан для [http://www.machinelearning.ru/wiki/index.php?title=%D0%9A%D0%BB%D0%B0%D1%81%D1%81%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F#:~:text=%D0%9A%D0%BB%D0%B0%D1%81%D1%81%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F%20%E2%80%94%20%D0%BE%D0%B4%D0%B8%D0%BD%20%D0%B8%D0%B7%20%D1%80%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%D0%BE%D0%B2%20%D0%BC%D0%B0%D1%88%D0%B8%D0%BD%D0%BD%D0%BE%D0%B3%D0%BE,%D0%AD%D1%82%D0%BE%20%D0%BC%D0%BD%D0%BE%D0%B6%D0%B5%D1%81%D1%82%D0%B2%D0%BE%20%D0%BD%D0%B0%D0%B7%D1%8B%D0%B2%D0%B0%D0%B5%D1%82%D1%81%D1%8F%20%D0%BE%D0%B1%D1%83%D1%87%D0%B0%D1%8E%D1%89%D0%B5%D0%B9%20%D0%B2%D1%8B%D0%B1%D0%BE%D1%80%D0%BA%D0%BE%D0%B9 классификации объектов], звуков, движений, текста, табличных данных, обладает [http://neerc.ifmo.ru/wiki/index.php?title=%D0%A0%D0%B5%D0%BA%D0%BE%D0%BC%D0%B5%D0%BD%D0%B4%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8B рекомендательной системой].
==Источники информации==
91
правка

Навигация