Little trouble with nested includes
-
Here's an example of a "trained" model (it's not actually trained, the weights just get randomized on initialization) if it helps explain it better
-
@iamlamprey Is the structure of the JSON always the same? Because if it is then I would recommend spending some time writing a batch tool that converts it to C structs, otherwise I would stick to loading and parsing JSON - there are classes available in JUCE that do this for you but embedding Strings as hardcoded values with escaping the special characters is a bit annoying.
And yes I would definitely go the route of embedding all model data and then choosing the one you want with a parameter.
-
@Christoph-Hart It is the same "for now" because Tensorflow is Tensorflow and they'll probably change everything in a week for no apparent reason
Embedding sounds good, while I've got you here, can you recommend any great C++ resources? Now that I'm finally getting around to learning it :) anything specifically JUCE-related would be bonus points
-
@Christoph-Hart do you have any suggestions for this?
I've added the directories to the Additional Include Directories in the C/C++ properties, added the lib path to the Linker->General->Additional Library Directories, and included all (and also tried selectively including) the .lib files in the Linker->Input->Additional Dependencies options, using the Debug build for both the node & HISE (and I double-checked that all the options I changed were Debug-Specific, and the Library is the debug-build), and everything seems to build and link just fine.
But when I open HISE and load the project, the node is "missing" from the Hardcoded FX & ScriptNode. I know there's an issue with the library, since commenting out the #include fixes the issue, but there's no error messages or anything up until HISE loads the project so I'm not sure where to even start looking.
Also happens for Release node/HISE/library.
-
- Compile the debug dll from within Visual Studio and check if there are any error messages
- Check if the DLL exists at the place that is shown in your screenshot above. If not, then the compilation didn't went through
-
@Christoph-Hart No error messages compiling, I cleaned the build folder and re-built and the .dll shows up just fine.
I noticed:
'HISE Debug.exe' (Win32): Loaded 'D:\Documents\HISE\TensorflowHISE\DspNetworks\Binaries\dll\Dynamic Library\TensorflowHISE_debug.dll'. Symbols loaded.
Followed shortly after by:
'HISE Debug.exe' (Win32): Unloaded 'D:\Documents\HISE\TensorflowHISE\DspNetworks\Binaries\dll\Dynamic Library\TensorflowHISE_debug.dll'
The Torch library has some .dll's as well as .libs (but no dynamic .libs), so I've only included the .libs. Could that be what's causing it?
-
Hmm I tried building a blank .sln in VS and now I'm getting 50 bajillion errors... I'll try the release version of Torch and see if I can get that one working...
-
Hmm, that's not so easy to remote debug.
The error message indicates that it can't open the DLL which might be related to the library itself trying to load the other dlls or whatever.
There are tools available to inspect DLLs (I think one is called DependencyWalker) so maybe if you look into the .dll you'll find whether the other libraries are imported, but yeah, this is one of the more frustrating areas of C / C++.
-
-
@Christoph-Hart So do these nodes not support strings at all? Would that be a pain to implement? Every ML library seems to rely heavily on strings for instantiating network layers and don't seem to support alternatives ie calling them by numbers.
-
actually I just realized I could probably just do manual matrix math since i have access to all the saved weights, im not sure how different the end result would be
-
@Christoph-Hart Does the parameter class not support step size? I need whole numbers so it isn't calling a randomize method every .01 steps