https://github.com/windowsnt/directmllib
A clean way to use DirectML for machine learning
https://github.com/windowsnt/directmllib
cplusplus directml machine-learning
Last synced: 2 months ago
JSON representation
A clean way to use DirectML for machine learning
- Host: GitHub
- URL: https://github.com/windowsnt/directmllib
- Owner: WindowsNT
- License: mit
- Created: 2025-02-18T21:34:16.000Z (3 months ago)
- Default Branch: master
- Last Pushed: 2025-03-03T05:12:53.000Z (2 months ago)
- Last Synced: 2025-03-03T05:24:57.627Z (2 months ago)
- Topics: cplusplus, directml, machine-learning
- Language: C++
- Homepage:
- Size: 106 KB
- Stars: 2
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# DirectML Lib
A quick way to use Direct ML for machine learning with a clean interface.
# Quick Usage
```
int main()
{
CoInitializeEx(NULL, COINIT_MULTITHREADED);
ML ml(true);
auto hr = ml.On();
if (FAILED(hr))
return 0;MLOP op1(&ml);
op1.
AddInput({ DML_TENSOR_DATA_TYPE_FLOAT32, { 10,10} }).
AddInput({ DML_TENSOR_DATA_TYPE_FLOAT32, { 10,10} }).
AddIntermediate(dml::Sin(op1.Item(0))).
AddIntermediate(dml::Cos(op1.Item(2))).
AddOutput(dml::Add(op1.Item(3), op1.Item(1)));
ml.ops.push_back(op1.Build());// Initialize
ml.Prepare();// Run it 5 times
for (int y = 0; y < 5; y++)
{
// Upload data
std::vector data(100);
for (int i = 0; i < 100; i++)
data[i] = (float)(i * (y + 1));
op1.Item(0).buffer->Upload(&ml, data.data(), data.size() * sizeof(float));
op1.Item(1).buffer->Upload(&ml, data.data(), data.size() * sizeof(float));ml.Run();
// Download data
std::vector fdata(100);
std::vector cdata(400);
op1.Item(4).buffer->Download(&ml, 400, cdata);
memcpy(fdata.data(), cdata.data(), 400);
}
}
```