Pythonのお勉強 Part72
レス数が900を超えています。1000を超えると表示できなくなるよ。
!extend:default:vvvvv:1000:1024
!extend:default:vvvvv:1000:1024
↑スレ立てる毎に減るので、減ってたら3つに補充すること。
・当スレにRubyのソースコード類を書くことを禁ず
・Ruby等、Pythonではないプログラミング言語での回答類・質問を書くのも禁止
・「Ruby では」「Rubyでは」「Rails」正規表現→「^クソチョンw$」をNGワード登録推奨
・エラーを解決したいときは、かならず
エラー文(勝手に省略orスクショうp等の横着禁止)と
おま環(Pythonのバージョン番号+OS名とバージョン+IDE名)を書け。
★Pythonのソースコードを5ちゃんに直貼はインデントが崩壊するので、
↓等のコードうp用サイトに貼ってきてくだしあ。(スクリーンショットをうpる「横着」禁止)
ttps://techiedelight.com/compiler/ Run Code機能あり。
ttp://ideone.com/ デフォ設定がCなので、Pythonするには言語種選択ボタン押下がピコ手間かも。
ttp://pastebin.com/ まずまずシンプル。
ttp://dpaste.com/ とてもシンプル。消えるまでの日数は十分長ーく指定のこと。
◇Pythonオフィシャルサイト http://www.python.org/
◇Pythonドキュメント https://docs.python.org/ja/3/
◇まとめwiki ttp://python.rdy.jp/
※前スレ
Pythonのお勉強 Part71
https://mevius.5ch.net/test/read.cgi/tech/1695168821/
VIPQ2_EXTDAT: default:vvvvv:1000:512:: EXT was configured 俺の投稿GW以降初なんだが馬鹿の自演言い訳扱いにされてんの? >>833
配列そのものが連続したアドレスのメモリ領域のことだからな
動的にメモリを確保する場合は、型が後づけになるから配列と呼ぶの違和感があるのは仕方ない サイズ決めてからリスト作ったら
内部データは1つの配列?
それとも1つ1つ個別のリンクリスト? >>843
>配列そのものが連続したアドレスのメモリ領域のことだからな
何を主張したいのかよくわからん
Pythonのlistは配列じゃないと言いたいの? それとも配列だと言いたいの?
>動的にメモリを確保する場合は、型が後づけになるから配列と呼ぶの違和感があるのは仕方ない
動的にメモリを確保することと型が後付になるかどうかは関係ないよ メモリなんかいつでも好きな時に確保できるように見えるだけで、
実際はmallocで頑張って実現してるしな
思想は先進化していくのに実現手段はずっとCなので、
職人がどんどんハゲる 結局 >>839 だよな。お前の言う「配列」はどれなんだってな。 「環境特有の用語」として使ってるやつなんていないだろ 発端はこれ
>Pythonって配列無いんじゃ?リストやろ
書き方から配列ではない”リスト”、リストではない”配列”について述べてることは自明
つまり抽象データ構造としてのリストを指してるわけではなく、その具体的実装のうち配列ではないもの(リンクリスト等)を指しているか、Pythonのlist(リスト型)を指していることになる
次にこれ
>なんで配列がリストと同様だと思ったん?
これはlistの内部実装が配列だというレスへの返信内容なので、発端となったレスと合わせるとlistがリンクリスト的なもので実装されてると勘違いしてたということ
同じ勘違いをしてると思われ、かつ同じように二言目にはCに言及してるレスが散見されるのは偶然ではないでしょう トートロジーなんだよな
中身のアドレスが規則的に並んでいるものを配列と呼ぶ
と定義すれば、配列はアドレスが規則的に並んでいる
自分の定義に疑問を持つような文章を書くから、
知らんがなお前の脳内にしか答えはねえよになる python変化目まぐるしくて追いつくのがしんどすぎる....
最先端のpythonライブラリのポータルサイトとかないの?
毎日確認したいわ
本でkeras、tensorflowとか必死で習得(完璧ではない)したのに
今はpytorchも主流らしいね
こんなの追いつくの大変だわ
webとpythonは本当に頭がスポンジじゃないと無理だわ >>852
https://pypi.org/
だいたいのライブラリはGitHubでプロジェクトつくってるから
バグやリリース前の情報を追いたいならissuesをみる >>852
pytorchも生で使う人はいないぞ
transformersというpytorchを使いやすくしたライブラリしか使われてない
まあそれも計算資源がある会社や組織しか無理だけど
日本向けにCPUでうまく学習できるライブラリ作れよって思うけどね
スパコンはあるわけだし
もう作れる技術ある人がいないのだろう
悲しいなあ >>853
見方がわからんw
>>854
人工知能のアルゴリズム組めるってそこそこ優秀で大学院レベルだと
思うんだよね
javaとかだとベテランが大量にいるだろうけど
それってjavaの取り巻く環境と文法についてのベテランであって
pythonのベテランっていうともろに数理科学に精通した人達だから
地頭レベルでいい人なんだろうな
もしかして独学は途方もない挑戦なのかも >>855
昔はライブラリなんてなかったし
どんな分野でも大企業の人間とか研究室の教授とかが作ってたんだよなあ >>851
>トートロジーなんだよな
>中身のアドレスが規則的に並んでいるものを配列と呼ぶ
>と定義すれば、配列はアドレスが規則的に並んでいる
またまた>>843と同じで何を主張したいかわからん文章だけど
結局Pythonのlistは俺の定義する配列ではないということ? AIはいい方法が見つかって、あとは規模を拡大していくだけじゃないの
その先に強いAIもあるよ 循環定義と言いたかったんじゃね?
循環してないから的外れだけど >>860
循環してないならトートロジーで合ってるのでは >>861
もちろん合ってない
哲学板ででも聞いてくれば?
そんな板があるのか知らんけど >>855
PHP の本を書いている、たにぐちまこともPython の動画を出そうとしたけど、
大学で勉強しないと無理と言っていた
KENTA が既に言っている。
理系で、8年も掛けて勉強するのは効率が悪い。
何年も勉強する看護師とかもそう
文系のアホが唯一金持ちになれる、最強のチート職業はRuby on Rails である!
Runteq の菊本も、千時間と言っている。
外人も言っている
Railsでは頭の良さが必要ではなく、再現性が高い。
東大受験と同じ。
アホでも3千時間の暗記で、偏差値が40上がる。
75時間で1偏差値上がる
だから、ほとんどの学校・サロンではRailsを教える。
知識が勉強時間に比例するから。
東大向け予備校と同じ
一方、Pythonは大学院数学科とか、地頭の良さが問われる。
文法を知っていても雇われない。
全言語の中で唯一、人余りの言語だし
文系なら絶対に無理。
理系で偏差値70以上なら独学でもできるだろうけど
Java は建設業と同じ、5大SIer の多重請負構造の身分制度があるから、
間に1社入る毎に、3割抜かれる。
絶対に大企業系列での身分が変わらないから、
一発逆転を狙うdrop out 組は、Railsへ進む 東大数学も難なく解けるような人間だとpython+人工知能も余裕なんだろうな
高卒にプログラマかなり多いけど彼らは人工知能理解できるのだろうか?
確率過程、解析学、線形代数など大学数学レベルの応用なわけだが 建築現場の労働者が強度計算できるのか心配してるようなもの 独学で学習したが動かせるようになるまで2.5年かかった
理解できているかは、分野や扱い方次第でどうとでも言えるかと
人工知能という単語が広すぎるので
何の何でどのモデルをどの手法でどうやってトレーニングして、何をできるようにしたことがあって、何に適用したことがあるか?
位まで説明してくれないとわからない マクドに行ってハンバーガーくださいと言っているのと変わらないということ >>846
動的に確保したメモリ領域を1バイト単位の変数からおかしくないが、可変のマルチバイトの型にすると物理アドレスで追えなくなる。 Pythonは一般的にコレクションにあたるものが独特の定義と変な構文・命令文で操作するから、素直な配列をリストと言う名称にして、配列とも呼ぶということにしたせいでわかりにくくなった。
配列は連続したメモリ領域という意味合いがあるが、Pythonは完全に無視しているので、初心者にはハードルが高い。 変にかじってるから連結リストを連想するんでは
シンプルに一覧、複数の要素を含むデータ構造ってだけ >>871,872
配列の領域を動的に拡張する動的配列の話と
ヒープというか1つの配列で複数の型の値を管理する話がごちゃ混ぜになってたのね
動的配列であるPythonのlistも連続したメモリ領域(内部はCのarray)
先頭アドレス+インデックスでインデックス番目の要素にO(1)でアクセス可能
連続メモリ領域である配列に型の異なる要素を入れられるのは
PyObjectというオブジェクトへのポインタを格納してる配列だから
intやfloatを格納してもポインタの間接参照が必ず入るので
それを必要としないarray.arrayやndarrayに比べるとシーケンシャルスキャンなどは遅い なんでappendした時のアドレスは最初から空いてるんだ? 動的配列(dynamic array)とか可変長配列(variable length array)でググってください >>874
それは実装の瑣末な問題
ポインタに整数を埋め込んでいるrubyやv8などもある >>866
Stack Overflow 米国年収。2022 -> 2023。
Rubyは、Go/Rust/Elixir の3大言語を超えた!
Ruby : 9.3 -> 9.9 万ドル
Elixir : 9.3 -> 9.6
Go : 8.9 -> 9.3
Rust : 8.7 -> 8.7
多くの言語 : 6.5〜7 -> 7.3〜7.8
PHP : 5 -> 5.9
Dart : 4.4 -> 5.6
プログラマーは、大卒コンピューターサイエンスが必須。
ただし、PHP, Dart だけは高卒用言語だから低収入。
だから、高卒で人工知能などをやっている香具師はいないはず
TIOBE Index 2024/4 では、
PHPは、9位 → 17。
一方、Ruby は、18 → 13
2019年「滅びゆく5つのプログラミング言語」として、
Ruby, Haskell, Objective-C, R, Perl の記事が出たけど、
実はRubyよりも、PHPの方が先に滅んでしまった
KENTA も、PHPをオワコン認定した。
そして初心者のキャリアパスは、Rails → Go のみと言う 滅ぶ為には一度栄える必要があるからな
滅ぶことすらできない言語が死屍累々 str.replaceとre.subがどっちがどっちだったか覚えられません >>874
知識がないようだけど、配列はすべて参照型というわけではない。
同じバイト数のデータ型なら、連続の領域を使う。
動的メモリ確保をして、メモリの断片化をさせる実装はあまりに無駄が多い。 RAMがハード的に仮想アドレスを持てるようにすれば、
ソフトが断片化とか気にしなくてよくなるな CPUにMMUが追加されたかなり昔からOSが似たようなことをしているわけで >>883
何言ってんだ?
全て参照だぞ
>同じバイト数のデータ型なら、連続の領域を使う。
これもデータをメモリに格納する話
先頭アドレスだけ解ればデータ型のビット数で算出出来るでしょ ちんちんシュッシュッ
>>886
pythonはレジスタ長では >>883
全参照なのでそこは間違い
連続になるのはcで連続に扱ったほうが高速に動くように改善されたデータ型だけで
必ず連続になるわけではないよ >>890
>連続になるのはcで連続に扱ったほうが高速に動くように改善されたデータ型だけで
Pythonのlistにそんな最適化はされてなくない? 何故appendするとappend後のものを返すんじゃなくて元データが変更されるのか >>893
>>832のソース見てもわかるようにそういう機能は無いね
>>894
appendは何も返さない
新しいlistを生成して返すのではなく
元のlistをmutateするのはそのほうが効率がいいから >同じバイト数のデータ型なら、連続の領域を使う。
「連続領域を使う」というのは「配列の中身がポインタじゃなく実データになる」という意味なんだろうけどバイト数が同じかどうかで判断したりはしないでしょ
少なくともndarrayやarray.arrayはそういう実装にはなってない
他の言語の話だとしてもバイト数で判断する実装というのは聞いたことがない 読んでないけど、普通に実装したらポインタの配列にするのでは array型すら中身はポインタだろ
値を直接突っ込む意味がない pythonで扱う対象は全てオブジェクトです
というのは、高級なことを言ってる訳でもなくて、
全部ポインタで管理してるというだけの意味なんだよな
数字の1を入れたいと思っても、
0x01とか0x00000001を直接入れずにその実体は別にあってそのポインタを入れる >>898
array.arrayそれ自身はPyObjectのポインタだけど
配列に格納してる中身はポインタじゃなくて実データ
取り出す時にPyObjectのポインタに変換してる 値を直接突っ込む意味はポインタのデリファレンスが必要なく
ローカリティが高いので処理によっては高速化できる(numpyが好まれる理由はこれ)
あとは必要なメモリサイズを小さくできる >>886
Pythonの配列のことではない。Pythonはコンテナというコレクションしかないので、他のプログラミング言語からするとアクセスの遅いコレクションしかないという何とも言えないクソ >>890
リストあたりは連続領域だよ?
要素に次の要素のアドレスが入っている。 >>899
それは違う。普通の変数は関数などの呼び出し時にその変数の領域が割り当てられる。 Pythonのスレはコンピューターをわかっていない人間が多すぎるよか 関数の引数で渡されるのが変数の実体なのか参照なのかは参照渡し云々で、
オブジェクトとして管理してるかとは別次元の話 >>908
関数というサブルーチンを呼び出すときはCPUがスタックに呼び出し元の情報を保存して、関数というサブルーチンをプログラムからメモリにコピーする。
ノイマン型コンピューターなんだから、プログラムが保存されているところと、実行するプログラムは別物。 スタックから取り出したものが実体なのかポインタなのかは実装次第
コンピューターをわかっていない人間が多すぎる ID:oNhs0c9T0の言ってることは、一見それらしいことを言ってるように見せかけて全部メチャクチャなので読む努力をしない方がいい
わざとやってるのかな? >>910
スタックはメモリ構造のこで、スタックにブッシュしたメモリのアドレス順とは逆にポップではメモリの値を戻す。 GPT-4oに頭の悪い文章を書かせるテストをしています >>906の頓珍漢レスを解説すると
彼が「関数などの呼び出し時に割り当てられる変数の領域」と読んでるものはスタックフレームのこと
対して>>899はスタックフレーム内の各変数が指してるのが
内部表現ではポインタなのか実体なのかという話をしてる
Pythonの場合は変数が指してるのはすべてポインタ(PyObject *)
もういちいち指摘しないけど>>903や>>904もすべて間違いなので
良い子は騙されないようにしましょう >>915
スタックはコンピューターのスタックでCPUの仕様
コンピューターを知らずに特定のプログラミング言語の用語だと思っているのか情けないねえ。 100%発達障害
- 文脈が全く読めない
- 自分だけに通じる言葉使い
- 異常なまでに過大な自己評価
- とにかく自己正当化する >>913
違う
ブッシュって何?
プッシュ(push)ね
間違えちゃダメだぞ >>916
CPUについて詳しそうだから聞くんだけど
なぜ逆ポーランド記法?
正規ポーランド記法もトルーマン記法でもよくないか? ぶん回してるのがオーバーフローかなんかで落ちるんだけど回避できるの?
エスパーよろ 一般論でいえば精度をあきらめるかアルゴリズム見直す
桁の上位・下位のベクトルで持つとか
いっそPython捨てるのもあり リソース無くなったら誤動作する、というのはCPUの宿命だよな
そこを絶対安全にするアイディアが無い 算術オーバーフローなのか
スタックオーバーフローなのか
バッファオーバーフローなのか
ヒープオーバーフローなのか
どれも回避は可能だけど
ものによっては手間がかかる (100!)!を計算するソフトをメモリ4kBで書いて ありがとう
例えば一定時間たったら自殺して再スタートとか、同じような別コード走らせてお互いに監視して死んでたら復活させるとかはインプレスのパイソン入門一通り全部理解した程度の私でもググればいけるレベルでしょうか? >>929
前者は別プロセスで処理を再スタートさせてから自分を落とす順序にすれば簡単
後者は初心者には難しい
あとはプロセスを定期的に監視して再起動するようなツールを使う手がある >>928
そんなに余裕持って書いていいの!?
超余裕じゃん96バイトあればかけるんちゃう? >>931
100!>2^100だから96バイトのメモリじゃ計算できないでしょ 非ノイマン的に、メモリは変数領域に全部使って良いとする >>930
ありがとう!
supervisorというのを見つけたんでこれやってみます! 子どもが言語を獲得していくのと同じようにAIモデルに学習させることに成功
AIの真価が加速する プログラミングやったことないんだけど、
すごく興味あります。自動学習的なやつとか特に。
たぶん、ある程度基本的なことを勉強したら、
どこかから画像認識できるプログラムのパーツ的なものを拝借して
作れるのかなと思ってるんですがあってますか?
あと、疑問なんですけど、
画像を読み込ませて学習するっていう話を聞いたことがあるのですが、
それってどんなものでも行けるんでしょうか?
例えば、産業用みたいな感じでベルトコンベヤーに乗って流れてきたものが
ギョウザだと認識できたらロボットアームでつかむ、
饅頭だと認識したらスルーみたいなプログラムと
おっぱいとお尻を区別するプログラム(昔ネットでやってる人を見ました)とかって
プログラム的には同じで覚えこませる画像が違うだけというイメージであってますか?
わかりにくい文ですみませんがご教授ください。 現実同様全ドメインを把握しなくても生活できるように
社会を構築しているのであってる
物事をモデル化するときは現実のようなしがらみが少ない分
できるだけ一般化を進めるので後半もあってる
どちらも良心に基づく話だから当てはまらない界隈も多いけど >>936
拝借して作れるけど精度上げたいなら転移学習
モノを掴むとかもできるけどラズパイのgpioなどをも学ぶ必要あり
見分けるには教師データが転移学習でも数千枚必要
そんなものを数千枚ずつ入れたフォルダを素面で見て自己嫌悪にならないなら作れるw ラズパイのプログラミングはまた別なんですね。
画像データって色々あると思うんですが、
動画取ってそのキャプチャ画像とかでも使えますか?
やっぱり解像度とか精度に影響与えますかね?
数千枚は確かに重労働ですね・・・ 良心はconscienceの訳語なのに、
conscienceの意味が全然理解されてないんだよな レス数が900を超えています。1000を超えると表示できなくなるよ。