Closed thunderhoser closed 2 years ago
Hi @thunderhoser Thanks for reporting this. As you also suggested, indeed this is most likely an incompatibility with the eckit version you have. eckit >= 1.19.0 had some changes to the Linear Algebra API, whereas Infero hasn't been updated yet.
Meanwhile can you please check with say eckit 1.18.9?
@antouk can you please have a look at this issue and if that is the case, fix infero to support the latest eckit 1.19 Linear Algebra API?
If and when we do, we should also update the CMakeLists.txt minimal version of eckit to:
ecbuild_find_package( NAME eckit VERSION 1.19 REQUIRED )
Hi @thunderhoser Thanks for reporting this. As you also suggested, indeed this is most likely an incompatibility with the eckit version you have. eckit >= 1.19.0 had some changes to the Linear Algebra API, whereas Infero hasn't been updated yet.
Meanwhile can you please check with say eckit 1.18.9?
Thanks, @tlmquintino! I'll try downgrading to 1.18.9 right away and let you know what I find.
@tlmquintino, while I have your attention, I hope you don't mind me asking a question that's off-topic. Does the Infero library work for the U-net++ or standard U-net architectures? Thanks!
Hi @thunderhoser Thanks for reporting this. As you also suggested, indeed this is most likely an incompatibility with the eckit version you have. eckit >= 1.19.0 had some changes to the Linear Algebra API, whereas Infero hasn't been updated yet. Meanwhile can you please check with say eckit 1.18.9?
Thanks, @tlmquintino! I'll try downgrading to 1.18.9 right away and let you know what I find.
It works with eckit 1.18.9! I got through all three scripts (1_install_deps.sh, 2_install_infero.sh, 3_run_tests.sh), with all tests passing. I didn't bother with TensorRT, but I did everything else (TFLite, TensorFlow C, ONNX). Thank you!
@tlmquintino, while I have your attention, I hope you don't mind me asking a question that's off-topic. Does the Infero library work for the U-net++ or standard U-net architectures? Thanks!
Actually Infero itself does not know about architectures -- it's the underlying backends that deal with the model and as far as I know the models we have tested support U-Net. Maybe @antouk can confirm?
@antouk although the issue with @thunderhoser is fixed, I will keep this issue open until we upgrade Infero to support latest eckit.
@antouk although the issue with @thunderhoser is fixed, I will keep this issue open until we upgrade Infero to support latest eckit.
Hi, sure no problem I will upgrade it shortly (along with other changes that are lined up)
@tlmquintino, while I have your attention, I hope you don't mind me asking a question that's off-topic. Does the Infero library work for the U-net++ or standard U-net architectures? Thanks!
Actually Infero itself does not know about architectures -- it's the underlying backends that deal with the model and as far as I know the models we have tested support U-Net. Maybe @antouk can confirm?
Re U-Net model, we have tried Infero with an implementation of a U-net model and as far as I remember all the operations performed by that model were supported, so there is a good chance that it will work also for your case, but needs to be tested.
@tlmquintino, while I have your attention, I hope you don't mind me asking a question that's off-topic. Does the Infero library work for the U-net++ or standard U-net architectures? Thanks!
Actually Infero itself does not know about architectures -- it's the underlying backends that deal with the model and as far as I know the models we have tested support U-Net. Maybe @antouk can confirm?
Re U-Net model, we have tried Infero with an implementation of a U-net model and as far as I remember all the operations performed by that model were supported, so there is a good chance that it will work also for your case, but needs to be tested.
Thanks, @antons-it! I'll give it a shot soon (hopefully today) for the U-net++ and let you know what happens.
Hi all,
I'm part of a team at NOAA who are hoping to translate a neural network (trained in TensorFlow) to Fortran code, so that it can be used for inference inside an NWP model. Your Infero library looks promising, so we're starting off with that. However, I've had some problems in getting the Infero library installed, which appear to be bugs in the C++ code.
Specifically, when I run the script 2_install_infero.sh, I get errors about variable types. It seems that the constructor for TensorFloat (from eckit::linalg) expects the first input argument to be a float, but there's code in Infero that tries to create a new TensorFloat object with the first input arg being a const float. I've attached the screenshot showing the error messages.
I fixed this problem (by copying each relevant const float to just a float -- at 4 places in infero/src/infero/api/infero-api.cc), but then more errors popped up, as you can see in the second set of screenshots (three of them, because the stack trace was long).
Overall, it seems like my version of Infero is incompatible with my version of eckit. I have version 1.19.3 of eckit and the newest version of Infero (cloned on Apr 3 2022 from Github -- I don't see a version number associated). Perhaps I could fix these problems by downgrading eckit to a previous version?
I apologize if this post is missing any crucial details or using weird jargon. I'm not a C++ programmer, and I don't usually build complicated libraries. However, this is mission-critical for our project (embedding a U-net that estimates radiative transfer into an NWP model), so any help would be greatly appreciated.
Best,
Ryan