Pythonのお勉強 Part59
レス数が900を超えています。1000を超えると表示できなくなるよ。
★当スレにRubyのソースコード類を書くことを禁ず★
☆Ruby等、Pythonではないプログラミング言語での回答類を書くのも禁止
☆「Ruby では」「Rubyでは」をNGワード登録推奨
◆エラーを解決したいときはエラー表示と
環境(Pythonのバージョン・OS・IDEの種類とバージョン)をシッカリ書く
◆Pythonのソースコードを5ちゃんにコピペするとインデントが崩れるので
↓にあげてるような、ソースコード用サイトに貼ってきてくだしあ
(スクリーンショットをimgurうp等の横着をしない)
ttp://ideone.com/ 推定最大手。デフォ設定がCなので、Pythonするには選択ボタン押下がピコ手間かも。
ttp://codepad.org/ ほぼ直感的に使える。Run codeボタンあり。
ttp://pastebin.com/ まずまずシンプル。
ttp://dpaste.com/ とてもシンプル。消えるまでの日数は十分長ーく指定のこと。
ttps://jupyter.org/try (旧try.jupyter.org)ちょっとめんどうそう。
ttps://ja.osdn.net/pastebin/ ログイン必須になりやがった(゚Д゚#)
◇Pythonオフィシャルサイト
http://www.python.org/
◇まとめwiki
ttp://python.rdy.jp/
●関連スレ●
くだすれPython(超初心者用) その41【Ruby禁止】
http://mevius.5ch.net/test/read.cgi/tech/1549282930/
〇前スレ
Pythonのお勉強 Part58
http://mevius.5ch.net/test/read.cgi/tech/1540468210/
次スレの建立は>>985が挑戦する やっぱり常識とか普通とか先例とかが好きなんだ
既存技術が好きなら思考停止してそれを丸暗記してりゃいいんじゃね >>803
今ないものでもいいよ。たしかにそれを実現するならボード上で機械学習するべきだなっていう具体例が欲しい。 >>807
ドローン、機械学習で調べたけどローカルで機械学習してる例は見つからなかったわ。
でもたしかに、たとえば障害物にぶつかったらペナルティとする強化学習とかはローカルであり得るかもしれない。
その結果飛行がおかしくなったら、ユーザーが初期化ボタンでモデル初期化できるとかなら現実的か。 ただドローンは無線接続が当たり前だから、データだけ保存しておいて外で学習になるだろうな。 >>801 今の自動運転なんてほとんどそうだろ。
本物の自動車でも、おもちゃの自動車でも。
例えばJetson nano を使ったロボット自動車は数回の学習で道を自走できるようになる。 >>804 戦闘機に組み込まれてるAI は殆ど全てがそうだろ。
学習結果を即座に反映することはないかもしれないけど。
例えば戦闘訓練、ステルスレーダー、妨害電波対策、エンジンコントロール。 光波観測などなど。
各々が自立して動かなければいけないのに遅い回線でネットに繋いで学習なんてありえない。
通信ですらステルス通信をしてるくらいなのに。それすら敵の近くでは控えざるを得ない。
学習データを後で反映させるケースが多いのもしれないが、学習データは全て記憶してるんじゃないかな。 自動車やドローンや飛行機のように事故ったら破損してしまう機械に学習させられるのか >各々が自立して動かなければいけないのに遅い回線でネットに繋いで学習なんてありえない。
機械学習じゃ最新のデータだけでモデルが作られる訳じゃないし、速さの意味がなくね? >>817 それがわかってるなら、ネットに繋がっていなくても良いということがわかりそうなものだが? 学習のフェーズで大量のデータを使って事前にモデルを作るんやないの
実際に使うフェーズでは、そのモデルに実際のデータを渡して結果をもらうだけ
リアルタイムに学習してモデルを生成してる分野ってあるのかね(´・ω・`) >>767 基本文法見直してみます。
>>768
基礎文とBeautifulSoup4の使い方も見てみることにします。
>>769 すみません。そうですよね。例文を見て使っているメソッドの意味が分からなかったり、
本の通りにコード書いてみたんですけど、import urllib.requestではエラーが出ないんですけど、
from urllib.request importではインポートできないエラーが出たりなど、エラーが出ても何が間違っているのかわからない状況です。
>>770 わかりました。Beautiful SoupとSeleniumのところを何度も見てみようと思います。
>>787基本的なプログラムで検索してやってみようと思います。
>>771 html、cssは本を見ながら簡単ななサイトが作れるかも?ぐらいなので見直します。
原理的な知識ですか…難しそうですけど持てるように考えてやるようにしてみますね。
>>802 ifやforやdefから始まる文字ぐらいしか分からずその後に並んでいる文字がよく分からない感じです。具体的な説明ではなくすみません。
皆さんありがとうございます。参考にさせていただきます。
基本を見直してまずは簡単なコードを調べて書けるようにしてみようと思います。 python2とpython3ではurllib.requestの仕様が違う あとはPython2系と3系の違い把握してWebの情報が
どちら想定で書かれてるか分かるようになると混乱少ない。 >>810
> でもたしかに、たとえば障害物にぶつかったらペナルティとする強化学習とかはローカルであり得るかもしれない。
それ単にマップ作ってるだけだろw
>>814もそうだけどそもそもそんな少量のデータで動作を学習するとかありえんわ >>822
from urllib import request
だろ >>822
ここに初心者用のチュートリアルがあるからやってみるといいよ
https://www.pycon.jp/support/bootcamp.html
このチュートリアルの最後に簡単なスクレイピングのスクリプトが乗ってるから試してみるといい >>825 なんで戦闘機のデーターが少量だなんて思うのが不思議。
何万、何千万以上のデータで学習してるに決まってるじゃん。 クラウドで機械学習することのメリットは
・ボードの性能が低くて良いので安上がり
・世の中の端末全てのデータが使えるから性能がよい
・新モデルの性能を確認してから反映できる
あたりかな。
一方端末でやるメリットは
・クラウドに繋がらない端末でもできる
ってとこか? >>828
>>814は実機の話だよね?
何千万回の根拠よろしくねw >>828
ファッ!?いったい何を機械学習してるんや!?ソースクレメンストリームパイソン! >>812
これ凄いな。自動車一台が数回走るだけで自動運転できるようになるのか。データ数少なくても正しい学習ができるボードなのかな? >>832
自走するだけだろ。すべての局面が数回で学習できるわけない >>833
でも自動車業界が置き去りにされてるような難題なのに、この1万円のボードつんで走れば自動運転実現するって凄くね?最近のボード凄いな。 自動運転が早く実装すれば世の中のおじいちゃんおばあちゃん達が泣いて喜ぶな >>812を読め。jetson nanoで実現しているらしい。 Jetson nano って、ラズパイを少し大きくしたくらいの大きさで、エッジ用として作られたらしい。
JetBot もラズパイの周辺部品を使ってる。
ARM もエッジ用チップの開発に力を入れてる。
三菱もエッジ用としてAI付きのFPGAを出してる。 AI機器って用途を打ち出せないまま出してるから流行らないだろうな。 >>837 そんな事はない。今までは大きくて高価だったから色んな場面に応用するのが難しかったけど、Jetson nano 位なら工場のラインなどにも沢山入れられる。
工場のラインをIoTで結ぶプロジェクトは国でも進めてたはず。 そこにAI が使えるようになれば鬼に金棒。
工場と言えばロボットだが、一昔前までは全てプログラムしてたが、AIの時代の今は簡単なティーチングだけで動かせるようになってる。 JetBot
https://devblogs.nvidia.com/wp-content/uploads/2019/03/JetBot_181.jpg
https://pc.watch.impress.co.jp/img/pcw/docs/1175/949/004_l.jpg
何で2輪なのか悩んだけど、2輪の方が小回りがきくし部品点数も少なく小回りが効くから、デモ用としては最適なんだろうな。
NVIDIA、250ドルでエッジAI入門を実現するJetBotプロジェクトを
〜Jetson Nanoを利用してプログラムを作成し、AI教育用途などにも最適
2019年3月22日
https://pc.watch.impress.co.jp/docs/news/1175949.html
JetBotは、言ってみればハードウェアのオープンソースプロジェクトだ。
略
その後はJupiter Notebookを利用して深層学習の学習を行なうことができる。
用意したデータは本体で学習させることもできるが、Jetson上でやると膨大な時間がかかるため、GeForce/CUDAが利用可能なデスクトップPCなどでやるのがおすすめとのことだった。
学習したデータはJetBotに対してJupiter Notebook経由でアップロードして、JetBotで推論のデータとして活用できる。
Jetson Nanoの特徴はCUDAが利用できるGPUを内蔵していることで、深層学習の推論がエッジデバイス上で利用できること。 >>840 変なところに突っ込むなよ。 簡単なティーチングという意味は、大まかな動きさえティーチングすれば、後はロボットのAIが物の形や位置を判断してティーチングを元に微調整の動きをしていくことができるからだよ。
物の形が違っていても自己学習で判断していく物もある。 >>826
本が間違ってると思ってませんでした。書き直してみます。ありがとうございます。
>>827
ありがとうございます。じっくり見てみますね。 >>842
それ手入力でパラメーター打つのと何が違うのん? >>846 膨大な時間とコストがかかり更に想定外のパラメータが入ってきたらその都度作り直しとなる。
全てのパラメータが解っていればAIを使わずとも同じことはできる。
AIを使うのは自分で学習してくれるところに存在価値がある。
例えばロボットの手に何かがぶつかったらどうなるか? ぶつかる位置、強さにしても様々。 人間がパラメータで与えられるのは想定外の動きが有ったらリセットしてやり直すことくらいだろう。
AIなら自分で修正ができる。
例えば将棋や囲碁のプログラムでも初期のAIは将棋の禁じ手などルールと、過去の棋譜を全てティーチングしてから始めていた。
最近のは、禁じ手すら覚えさせなくてもそんな手を選択することはない。 自分で対戦経験を高めていくから今や人間の思いつかない手を次々に打ち出す。
人間が思いつかないという事は、人間がパラメータすら入力できないという事に他ならない。 直接的に指示せずAI自ら回避できそうな禁じ手なんて千日手くらいじゃないの?
人が楽しめるゲームを自作するAIが登場するまで二歩や打ち歩詰め等を回避できると思えない。 >>842
それ機械学習なん?
閾値を変えたりとかは昔からあるけど…
機械学習ってことは元からあるモデルが支配的になって、ちょっとやそっと現場のデータ加えてもなにも変わらないなら意味なくね? >>848 ロボット3原則みたいなルールをAI にもあてはめようという動きもある。
米国国防省は人を殺すための最終判断は人が行わなければならないという原則にしてるらしい。
しかし米国以外の国がAI をボタンを押させる可能性は残る。 >>850 教わっていない形の部品が入ってきても直ぐに対処できるようになるだろ。 最初は失敗するだろうけど。
何も変わらないわけがない。 自動制御と
機械学習を混同してる人がいるような?
自動制御の仕事しないとわかんないかも? 学習はどっかでまとめてやって並列化でしょ
個別でとか効率悪くて仕方ねぇ 従来式の制御でやれることを機械学習にする必要はない これ本物の組み込みエンジニアが組み込みで機械学習なんてやらないって主張してて、素人の人たちが組み込みで機械学習やるよって主張してる構図だよな。
すぐに対応しないといけないからボードで機械学習するんだ、なんて意見に至ってはまず機械学習を理解できてないだろ。 >>847
これなんかすごい。工場用ロボットがオンボード機械学習で適応していくという謎の応用例をこんな長文で力説してる。
適応するまでの工場クッソ楽しそうw >>801
隔離された場所や通信が確保できない状況は軒並みそうじゃないかな
場所の候補は戦場、宇宙、海底など
通信が確保できない状況とは、戦闘機などの高速移動物体や大量のバラマキタイプのロボットで通信干渉が起こる場合など
出荷時にはステレオタイプでイマイチでも、導入先で最適化されて特化していくなんてのは汎用性ありそう >>859
学習に必要なコストとか前提にした上でその意見なの? >>860
学習コストはケースバイケースだよね
コストが高いと思ったら性能犠牲にして軽いモデルかある程度学習済みのモデルを乗せるだけ
新しいモノなんだから最初は補助的な立ち位置のショボいものでいいんだよ
もはや何が何でも否定しなければ気が済まない思考に陥っている気がする 何が何でもボードで機械学習を通そうとしてるようにしか見えないが……
まず機械学習しようと思ったらラベルつけないといけないから通信できないとこにあるものじゃ無理じゃん。手作業でやるの?
強化学習なら可能だけど学習完了する前に壊れちゃうぞ?
それとも元からモデルデータ渡して強化学習か?端末ごとのデータの影響が出てくるのはいつの話やら…… まあ実際に自分でデータ集めて機械学習をしたことないんだろうな。
まずデータが少ないうちはいわゆる過学習したようなモデルになるから、それを元に自動制御したりしたらとんでもなく不安定な動作になる。
つまり飛行機でそんなことしたらヤバイ。 C言語で少し凝った三層RNNのコード書いた経験があるけど、当たり前だがめちゃくちゃ大変だった。出来たけど、上にドのつくマグレだったわ
サヴァン症候群の人でないと実務では無理だな
あれは本来、年収500万とか、いやもっとか? PGでもらってる人の仕事だと思う
俺たちには関係ない世界 >>265
いや、そう言われると知ったかしたかも
もののたとえで、頭の作りが元から違う天才って言いたかった。すまん >>863 なんでそんなバカな話に持っていくんだろうな。
モデルデータがないところからスタートするなんて実際にはまずないだろ。
データーの学習にしろ精度が必要であればリアルタイムでやる必要はない。 金曜の深夜くらいからガイジに占拠されてるのは何かあったの? 読み返してきたけどこんな流れだな
pythonを勉強して組み込みエンジニアになりたいという人が登場
↓
たしかに最近はpythonで組み込みが流行ってるよねという話がでる
↓
でも特にメリットがないからプロの世界には入ってこないだろうという意見がでる
↓
機械学習するならpythonが効率よくていいという意見がでる
↓
ボードで機械学習はやらんだろ、クラウドだろという突っ込みが入る
(ここから本格的に論争に)
↓
なんやかんやあって、端末個々で機械学習することの是非についての議論に落ち着く Jetson Nano であらゆる人が AI コンピューティングの利用が可能に
BY NVIDIA JAPAN · APRIL 2, 2019
https://blogs.nvidia.co.jp/2019/04/02/jetson-nano-ai-computing/
またML フレームワークを用いることでJetson Nano 上でローカルに実装されたネットワークを再トレーニングする転移学習も可能です。
自分自身でモデルのトレーニングを行いたいと望む開発者は、フルバージョンの「Two Days to a Demo」チュートリアルのご利用をお勧めします。
このチュートリアルでは転移学習によって画像分類、物体検知およびセマンティック セグメンテーションのモデルの再トレーニングおよびカスタマイゼーションを行うための一連の流れが示されています。
転移学習では、特定のデータセットのモデル ウエイトが微調整されますので、モデルを一から訓練する必要はありません。
モデルのトレーニングは推論に比べてより多くの演算リソースと時間が必要になるため、転移学習はNVIDIA の GPU を個別に実装した PC またはクラウド インスタンスで行うのがもっとも効果的です。
しかしながら、Jetson Nano はTensorFlow や PyTorch、Caffe などのフルトレーニング フレームワークを実行できますので、
他の専用のトレーニング マシンを利用できない方、あるいはトレーニングの実行に時間をかけても問題ないという方はJetson Nanoで転移学習による再トレーニングも行えます >モデルのトレーニングは推論に比べてより多くの演算リソースと時間が必要になるため、転移学習はNVIDIA の GPU を個別に実装した PC またはクラウド インスタンスで行うのがもっとも効果的です。
データ収集なんかしったことか、という立場のnvidiaですらエッジで学習することに消極的なわけだな。
ここに更に重要なデータ収集の話が加わるからやっぱりエッジで個々に学習なんてやらないが結論でいいんじゃない。 >>863
考え方が極端だなぁ
いきなりクリティカルなところに導入するって考え方しかできないのかね
カメラつけてYes or Noのニ値分類なら現時点でも十分可能性はあると思うけどね
ボタン付けて不良品検査ならすぐにでもいけるんじゃないの? >>872
論点が違うような
Nvidiaもエッジでの転移学習の微調整は否定してないように読めるけども
エッジ側で一から機械学習すべきなんて主張は誰もしてないと思うよ
元々はクラウドにつながってないなら意味がないっていう議論だった jetson nanoはubuntu用のデスクトップパソコンとしてほしいわ(´・ω・`) >>873
不良品検査なんてクリティカルなことを端末に閉じてやるはずなくね?
絶対クラウドなりオンプレサーバーなりにデータ集約して扱うと思うけど…
どうしても端末でやりたいのか? >>874
ではエッジ側で途中から機械学習するって主張なのか?
判定アルゴリズムを調整するような学習は普通にありうるけど、モデルを更新するような学習は新データが大量にないと元のモデルから変化しないからかなりキツイ。
>>876の言う通り機械学習とそうではない学習があるってことは理解してるよね? 中央で集約したデータで普通に学習させて末端では学習済みモデルを動かすだけなのが一番低コストなのにあえて末端でも学習させなければならない合理的理由がなければやる必要はない もうpythonから外れて無関係な話題になってるから、お前らまとめてどっか適切なスレ見つけて引っ越せよ。 >>872 何を言ってんだよ。 データー収集は、センサーがついてるエッジがやらなくて何ができるというんだよ。
現場のデーターに勝るデーターはない。 【統計分析】機械学習・データマイニング23
https://mevius.2ch.net/test/read.cgi/tech/1551352040/
とは言え、安いからJetson nano を注文してみようかな。Python で遊ぶのにも面白そうだし。 転移学習:機械学習の次のフロンティアへの招待
https://qiita.com/icoxfog417/items/48cbf087dd22f1f8c6f4
機械学習を実務で使う場合、「ではお客様、ラベルデータを・・・」と申し出て色よい返事が返ってくることはあまりありません。
また、例えば自動運転車を作るときに、データが足りないからその辺流してくるか、お前ボンネットに立ってデータとってな、とするのは大変です。
そこで必要になってくるのが転移学習です。
転移学習とは、端的に言えばある領域で学習させたモデルを、別の領域に適応させる技術です。
具体的には、広くデータが手に入る領域で学習させたモデルを少ないデータしかない領域に適応させたり、シミュレーター環境で学習させたモデルを現実に適応させたりする技術です。
これにより、少ないデータしかない領域でのモデル構築や、ボンネットに立つという危険を侵さずにモデルを構築することができるというわけです。
以下略 pythonスレはこれで終了?
もう話題がないんだよね? >>885
importとfrom importの是非でも議論しよう
この二つが混ざっていると美しくないと感じてしまう >>885
俺の質問に誰も答えてくれなくて
それでも終わるの?
もしかしてpython分かんなくて
悔しいから終わらせたいの? >>888 何を聞いてた? 忘れ去られてるんだからリンクくらい貼れよ。 >>891
UNIX と Linux は違うものです!きり >>892
リンク張れないからもいちど書くよ!
classのインスタンスをListで持ちたい。
classをそのままListに追加すると参照になってしまうからdeepcopyしないといけないのか?
またdeepcopyしたListを一括で
解放したいときどうやるのか?
というような質問でした。
わかる方いらっしゃいましたら
教えて下さい! >>894
何が問題なのかよく分からんけど
a1 = A()
seq = [a1]
ってしたときに、a1が変化したときに、seq[0]が変化すると困るって状況?
あと、メモリの管理はGCがやってくれるから、基本的には参照できなくなった時点で勝手に開放してくれるよ
# ただし、ごく一部のオブジェクトは明示的に開放しないといけない >>894
delで削除は出来るはず
上の例だと
del seq[:]
del seq
もう少しマナーの良い方法は
import gc
...
gc.collect()
前者は他で使っているかどうかに関わらず解放する
後者は普通は自動で行ってくれるガーベッジコレクションの強制発動
メモリ量を調べて解放されてないように見えるかも知れないけど、プロセスが立ち上がってる限り確保したメモリはosには返さない
返す必要があるならサブプロセスの中で確保しないとダメ >>896 OSだよ。 UNIXが大元のOSで、その仕様を満足するようにオープンソースとして作られたのがLinux
他のオープンソース系としてはBSDなどがある。
Linux などを配布するまとまり(ディストリビューション)でまた名前がついている。 その一つがUbuntsu、だったりCENTOSだったり、RdHat,
FreeBSD、などなどだが皆兄弟と言える。
iPhoneやMacOSはFreeBSDの上に構築されている。 AndoridもUnixの変形したカーネル(NetBSD)の上に構築されている。 これらスマホ系のOSはUnix系のサブセットと言える。
Unix が始めて本格的にコンパイラ言語(C言語)で作られた。 コンパイラ言語で作られているのでCPUの違いにはほとんど影響されないで移植性が高くなった。 レス数が900を超えています。1000を超えると表示できなくなるよ。