質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

2回答

1771閲覧

djangoでの深層学習の利用方法

退会済みユーザー

退会済みユーザー

総合スコア0

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2019/01/14 22:07

djangoでtensorflowやkerasのような深層学習のパッケージを利用したいと思っています。
今はサービス上でgensimのword2vecを使用したいと思ってるのですが

model = word2vec.Word2vec.load("./xxx.model")としてモデルを読み込もうとすると
No such file or directory: './xxx.model'

とプロジェクト内においているmodelファイルが読み込まれません。

今回に限らず、皆さんはwebサービスに深層学習を組み込む時どのようにされているのでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

Djangoを利用されているとのことなので、おそらく project/settings.pyBASE_DIR というのが定義されていて、そこがプロジェクトのルートディレクトリをさしていると思います。

たとえば project/settings.py

python

1MODEL_FILE_PATH = os.path.join(BASE_DIR, 'xxx.model')

などと定義をしておいて、

python

1from project.settings import MODEL_FILE_PATH 2 3model = word2vec.Word2vec.load(MODEL_FILE_PATH)

とするとDjangoアプリの起動時でもモデルのロードができると思います。

(上記はプロジェクトのルートディレクトリの直下に xxx.model を置いた場合です)

投稿2019/01/15 03:45

515hikaru

総合スコア19

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/01/15 06:06

利用することができました!ありがとうございます。 これを機に1つのwebフレームワークのドキュメントを読み込むことで理解が深まると思いました。 お世話になりました。
退会済みユーザー

退会済みユーザー

2019/01/16 20:22

度々すみません。まだ見ていらしたら質問があります。 今回、回答してくださった知識はどのように知ったのでしょうか? 一般的なwebフレームワークの仕様なのでしょうか? それとも英語のドキュメント等を読み込んでいるのでしょうか?
515hikaru

2019/01/17 03:09 編集

あくまでもわたしのやり方、という前提で書きますが、わたし自身はあまりフレームワークのドキュメントを読み込んだりはしていません。あと、わたしはDjango以外のWebフレームワークをほとんど使ったことがないので、今回の回答内容が他のフレームワークでも使えるかどうかはわたしにはわからないです。 わたしの場合、「やりたいこと」があり、その実現方法がわからなかったときはやり方を英語で検索をします(今回のケースだと "how can i open file in django" とか)。Qiitaとかが出てくることもありますが、だいたい英語のブログかStackOVerflowで類似の質問が出てくるので、そこに出てくる情報をヒントに試すことが多いです。 ドキュメントを読みこむときは、StackOverflowの回答にリンクが貼られているときか、どうにも類似の課題・問題で困ったことがある人が検索ではでてこないときが多いです。 ただ、フレームワークのいろんな機能を大雑把に把握するには上記のやり方は全く向いていないので、あまり目的もなくドキュメントを見出しだけでも眺める行為・習慣にも意味があるように思います。わたし自身、見出しだけ知っていた機能が後に開発で必要・有効になったことがあります。 あと最低限、Djangoチュートリアルは全部やりました。https://docs.djangoproject.com/ja/2.1/intro/
退会済みユーザー

退会済みユーザー

2019/01/18 14:50

長文ありがとうございました。 精進します。
guest

0

"./xxx.model"は実行時のカレントディレクトリからのパスです。djangoでどこになるかは把握していませんが、いずれにせよPROJECT_ROOTあたりを設定していると思うので、それを基準にしたパスで記述してください。

webサービスに深層学習を組み込む時

やったことないので一般論ですが、参考程度に・・・

ある程度の規模のシステムだと、「そもそも別サーバで走らせておいてAPIで叩く」方がスマートな感じがします。

簡単に実装するならWebサーバで走っても良いかもしれませんが、なにしろ重いので実用システムにするならそれなりの配慮は要るでしょう(1ユーザに多重実行させない、ジョブキュー作って管理するとか・・・)。

本当に実験とか練習で作るレベルなら、Webアプリケーションのコードの中に書けば動くので、それで良いんじゃないかと。

参考:
機械学習使っても技術的負債を残しにくいAWSのインフラ構成 - Qiita

投稿2019/01/15 02:02

編集2019/01/15 02:02
hayataka2049

総合スコア30933

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/01/15 06:10

実用的な回答ありがとうございました。 とりあえず利用できるかどうかという時点で困っていたので 今回してくださった回答は運用していく上でのもう一つ先の段階の作業だと思いました。 これから参考にさせていただきたいです!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問