Отказ от ответственности : я очень мало знаю Javascript
Я пытаюсь запустить TensorflowJS в экземпляре Django, я могу успешно загрузить JS для вызова функции tf.loadLayersModel
, однакодля этой функции требуется файл json (и еще один файл .bin позже), и функция не может его найти.
Оба файла (json и bin) находятся в ожидаемом статическом каталоге (то же самое, что и файл JS, загруженный в первую очередь), но каждый раз, когда я загружаю страницу, Django возвращает Not Found: /myapp/test_model/model.json
и браузер возвращает (через элемент проверки) Error: Request to model.json failed with status code 404. Please verify this URL points to the model JSON of the model to load.
Я использую в settings.py:
PROJECT_DIR = os.path.dirname(os.path.abspath(__file__))
STATIC_ROOT = os.path.join(PROJECT_DIR, 'static')
STATIC_URL = '/static/'
STATICFILES_DIRS = (os.path.join(BASE_DIR, 'static'),)
Каталог:
myproject/
++ static/ #(created by django)
++ __init__.py
++ settings.py
++ ...
myapp/
static/ #(where I'm putting the files)
++ myapp/
++++ test_model/
++++++ model.json
++++++ otherfile.bin
manage.py
Таким образом, файлы помещаются в static/myapp/test_model/
и после этого я запускаю python manage.py collectstatic
, файлы преобразуются и копируются в myproject/static/myapp/test_model/
.html, загруженный в виде: (localhost / myapp / test_model /)
<html>
<head>
{% load static %}
...
<script src = "{% static "myapp/test_model/main.js" %}" > </script>
</head>
<body>
...
</body>
{% block javascript %}
<script>
start()
</script>
{% endblock %}
</html>
Javascript:
async function start() {
model = await tf.loadLayersModel('model.json')
model.predict(tf.zeros([1, 28, 28, 1]))
await loadClasses()
}
Однако, когда я загружаю страницу, модель не загружается И консоль django возвращает: Not Found: /myapp/test_model/model.json