BYO Model error

I’m trying to follow the steps from the BYO Model page and am encountering an error. I’m attempting this with desktop Docker and WSL2 so I understand if this isn’t supported for some reason. I started by downloading blocks from the classifier page (hopefully that is correct) but when I try running

docker run --rm -v $PWD:/app custom-ml-keras --data-directory /app/data --epochs 30 --learning-rate 0.01 --out-directory out/

I get the following:

docker: Error response from daemon: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: exec: "./run-python-with-venv.sh": permission denied: unknown.

EDIT:
Actually, I’m now realizing that it fails even before this when I try to run edge-impulse-blocks runner --download-data data/ I get:

Edge Impulse Blocks v1.17.0
[BLK] Selecting project with ID 64474
Error while running block: Error: No learning block found with ID 187
    at Request._callback (/usr/local/lib/node_modules/edge-impulse-cli/build/sdk/studio/sdk/api/learnApi.js:692:36)
    at Request.self.callback (/usr/local/lib/node_modules/edge-impulse-cli/node_modules/request/request.js:185:22)
    at Request.emit (events.js:314:20)
    at Request.<anonymous> (/usr/local/lib/node_modules/edge-impulse-cli/node_modules/request/request.js:1161:10)
    at Request.emit (events.js:314:20)
    at IncomingMessage.<anonymous> (/usr/local/lib/node_modules/edge-impulse-cli/node_modules/request/request.js:1083:12)
    at Object.onceWrapper (events.js:420:28)
    at IncomingMessage.emit (events.js:326:22)
    at endReadableNT (_stream_readable.js:1241:12)
    at processTicksAndRejections (internal/process/task_queues.js:84:21)

I should mention that this is for audio classification.

@jefffhaynes

Seem’s like a learn block with ID 187 no longer exists (your project has a new ID for your learn block). Can you try removing the (old) configuration (.ei-block-config) and run edge-impulse-blocks init again?

It’s entirely possible I’m missing something but I don’t think this is related to my project. I tried following the steps in the keras tutorial and got the same result. Maybe something is being cached somewhere but I don’t know where that would be. I’ve run edge-impulse-blocks init multiple times on both my project and the tutorial example, always with the same result.

@jefffhaynes

Sorry if I wasn’t clear enough.

When you run edge-impulse-blocks init for the first time (in a folder) a configuration file ./ei-block-config is created in this directory. This local configuration file will reference a learn block in your project.
In your case it appears this learn block no longer exists and hence your local configuration is stale.

You should have seen the following message if you run edge-impulse-blocks init in a directory where you’ve already ran the command:

A block already exists in this location. Please delete it or use "push" to push it.

In your case, if there’s nothing to push, remove the local configuration file in the current directory. (.ei-block-config) and run edge-impulse-blocks init again.

Sorry if I wasn’t clear :slight_smile: but I’ve done that multiple times with the same error. I’m not aware of 187 even being a block that I ever owned. It seems like that is being pulled from somewhere else.

But again, the steps to reproduce are:

– Pull the keras custom block example into a new directory (there is no .ei-block-config file).
– Run edge-impulse-blocks init
– Run edge-impulse-blocks runner --download-data data/

This will result in that error every time. Same thing if I remove the .ei-block-config file and try again.

I’m not able to reproduce your error. I was able to download data from your project fine. So the issue is likely local.
Can you share the steps you followed when you ran edge-impulse-blocks init. Can you share the resulting .ei-block-config and can you let me what OS/system are you running on?

@jefffhaynes

Can you try edge-impulse-blocks init --clean which also allows you to re-authenticate with EI and clears your local configurations. Let me know if this helps

1 Like

Thanks, that fixed the first issue. I’m now back to the original issue that I posted (e.g. trying to actually train). Any thoughts on that? Definitely could be a WSL2 issue.

@jefffhaynes
Are you referring to this original issue?

If so I’m not familiar with the issue and I’ll get another team member to look at it

Hello @jefffhaynes,

I am not super familiar with WSL2 but could you try modifying the rights on the “run-python-with-venv.sh” script to see if it fixes your issue.
The issue seems similar to this:

Best,

Louis

1 Like

Thanks @louis, I did try setting permissions (locally, not via the docker file) on the script but I’m still getting the same error. Just to make sure I’m getting you, you’re suggesting adding:

RUN ["chmod", "+x", "run-python-with-venv.sh"]

to the docker file, correct?

Ok, I had to remove and reinstall Docker. Somehow it got into a bad state. Thanks for all your help!

2 Likes