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

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

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

Google Colaboratoryとは、無償のJupyterノートブック環境。教育や研究機関の機械学習の普及のためのGoogleの研究プロジェクトです。PythonやNumpyといった機械学習で要する大方の環境がすでに構築されており、コードの記述・実行、解析の保存・共有などが可能です。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

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

Q&A

1回答

1209閲覧

Python ----兎に角実行速度が遅い。。。原因は❓

insecticide

総合スコア315

Google Colaboratory

Google Colaboratoryとは、無償のJupyterノートブック環境。教育や研究機関の機械学習の普及のためのGoogleの研究プロジェクトです。PythonやNumpyといった機械学習で要する大方の環境がすでに構築されており、コードの記述・実行、解析の保存・共有などが可能です。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

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

0グッド

0クリップ

投稿2022/06/13 22:36

編集2022/06/13 22:40

PythonでBilateral filter画像処理(画像はモノクロで700×700)を実装して実行をしましたが、Google-Colaboの実行時間が数秒も掛りました。

Pythonの特徴を生かすために、できるだけfor文を入れず、matrix, 即ち、最大限にNumpy.dnarray の形でアリゴリズムを表現しました。
(Python内部的に恐らく多量なメモリの生成、複製、変換が行われるかな。。。)

コーディングスタイルは簡潔ですが、実際メモリ関係でCPUの仕事量が増えたせいか、実行速度が我慢できないような感じ、これでオンライン画像検査現場に利用できないでは?と思いつつ、もしかして、Google-Colaboの実行環境にも問題あるのではと一縷の期待感もありますね。

さて、自前のPCでPython実行経験とGoogle-Colaboの環境でPython開発経験が
共にある方にお伺いしたいのですが、
Google-Colaboの環境で、Pythonの実行速度が一層悪くなるのでしょうか。

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

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

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

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

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

Zuishin

2022/06/13 22:48

実際に自宅の PC でやってみて比較してみたらどうでしょう? 同じものを実行して遅くなるのであれば、遅くなることはあり得ることなのでしょうし、ならないなら遅いのは環境のせいではなかったということになります。 回答者は同じ環境やコードを用意できないので確認できるはずがありません。
jbpb0

2022/06/14 00:16

OpenCVのBilateral Filter http://labs.eecs.tottori-u.ac.jp/sd/Member/oyamada/OpenCV/html/py_tutorials/py_imgproc/py_filtering/py_filtering.html#id7 を使ったら速くなりませんかね Bilateral Filterは遅いもので、それをなんとかしようとして、計算方法が改良されたり、他のフィルタが考案されたりしてます https://www.jstage.jst.go.jp/article/jjiiae/5/1/5_41/_pdf http://www.cloud.teu.ac.jp/public/MDF/toudouhk/blog/2015/08/26/GuidedFilter/ こちらも参考に (書かれた時期が古いので、現在ではいろいろ状況変わってるとは思いますが) https://qiita.com/fukushima1981/items/ad31097ec45b4cec7898
AbeTakashi

2022/06/14 01:54

正直何とも言えない質問だと思いますが、Google Colaboratoryは無償版ですよね? 実行時間やメモリにそれなりの制限はあるみたいですので、場合によってはPC環境より遅くなる可能性もあると思います。 参考) https://atmarkit.itmedia.co.jp/ait/articles/2106/07/news025.html 一度有償版を使ってみて比較するなどしてみてもいいかもしれません。とにかくご自分で調べて解決するしかない質問だと思います。
insecticide

2022/06/14 05:44

皆さま情報とアドバイスありがとうございます!💛 Colaboの場合、毎回実行時間が違いますが、 同じBilateral処理の場合OpenCVのほうは倍早いような感じです。 でもC環境で実行速度より遅いと思います。 自分の経験だとms単位で完了できる処理で、Python+Colaboでは秒単位ですね。 因みにPythonで利用できるOpenCVもC言語で実装したでしょ? どうして実行速度にこんなに差があるのでしょうね。 やはり、Colaboにも問題あるかな
jbpb0

2022/06/14 06:52

> 因みにPythonで利用できるOpenCVもC言語で実装したでしょ? どうして実行速度にこんなに差があるのでしょうね。 画像ファイルを読むところとかを含めず、フィルタ処理の部分だけの時間比較をしてますでしょうか? また、「pythonのopencvがc言語で書かれてるのに遅い」みたいな疑問は、当然同じ環境(google colab)でのpythonからのopencvと、c言語からのopencvの比較じゃないと意味は無いですが、そこは大丈夫でしょうか? その場合は、google colabどうしの比較なので、 > Colaboにも問題あるかな みたいな疑問は持たないはずなのですが
insecticide

2022/06/14 09:05

> 当然同じ環境(google colab)でのpythonからのopencvと、c言語からのopencvの比較じゃないと意味は無いですが、そこは大丈夫でしょうか? 最近ソフト開発をやめていますので、C言語開発環境も備えていません。 好奇心でGoogle Colaboを利用してPythonを試しています。 これまでの経験・感覚だと、Colabo+OpenCVの画像回転処理の実行時間が常識を超えています。 (兎に角処理時間が秒単位になっている以上、アウト。) 無論、自分の経験より早いと感じられる方もいらっしゃるかもしれませんが。
insecticide

2022/06/14 09:50 編集

実行時間を少し具体的に測定しましたので、報告致します。 ( "|"で1回目と2回目, 3回目の測定時間を分けています。) 画像読む時間=0.005019187927246094 | 0.006804704666137695 | 0.006034374237060547 アフィン変換行列作成時間=0.0011832714080810547 | 0.00013446807861328125 | 0.000125885009765625 cv2.warpAffineの実行時間=0.003930807113647461 | 0.004248857498168945 | 0.0034110546112060547 cv2_imshowの実行時間=0.027701377868652344 | 0.026127338409423828 | 0.022531747817993164 自分の周辺填充関数の実行時間=0.5934407711029053 | 0.5828287601470947 | 0.5912430286407471 cv2_imshowの実行時間=0.02513742446899414 | 0.03147149085998535 | 0.023689985275268555 ===================== 分かったのは、さすがOpenCVの画像回転処理(cv2.warpAffine)の速度は自分の経験感覚とほぼ一致してますね=数ms ただ、上記処理時間の総計は1秒足らないのに、Colabotoryの表示している時間はいつも6秒にもなっております。 この大きな差は何を意味するのでしょうか。
jbpb0

2022/06/17 01:55

> Colabotoryの表示している時間はいつも6秒 とは、どういう意味でしょうか? cv2_imshowで画像がWebブラウザ上に表示され終わるまでがだいたい6秒かかる、という意味でしょうか?
insecticide

2022/06/17 02:15

最後はcv2_imshowの表示です。 それが終わる時点でColabの時間カウンターがPythonの各項目毎にtime.time()で計時の合計値と合わないですね。
jbpb0

2022/06/17 02:25

cv2_imshowを全部止めて、処理後の画像を(google colab内でストレージに)保存するだけにしたら、どうなりますでしょうか?
guest

回答1

0

PythonでBilateral filter画像処理(画像はモノクロで700×700)を実装して実行をしましたが、Google-Colaboの実行時間が数秒も掛りました。

OpenCVのBilateral Filter
と、コード中の画像ファイルを読むところとかを含めず、フィルタ処理の部分だけの時間比較をしてみてください

投稿2022/07/29 07:42

jbpb0

総合スコア7651

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

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

insecticide

2022/07/29 10:46

あっ、なるほど、画像データをインターネットでgoogleのサーバーに送り、結果画像がインターネットでこちらに送られたんですね。 それなりの時間かかるはず。。。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問