Twitter APIの仕様変更のため、「いいね」の新規取得を終了いたしました

黒木玄 Gen Kuroki

@genkuroki

  • いいね数 389,756/311,170
  • フォロー 995 フォロワー 14,556 ツイート 293,980
  • 現在地 (^-^)/
  • Web https://genkuroki.github.io/documents/
  • 自己紹介 私については https://twilog.org/genkuroki と https://genkuroki.github.io と https://github.com/genkuroki と https://github.com/genkuroki/public を見て下さい。
並び順 : 新→古 | 古→新

2020年10月26日(月)

K.B.砂糖 @KB_satou

20年10月26日

なるほどな? (2枚めの方は妥当な気がする) (ありがとうございます!!)
twitter.com/LirimyDh/statu...
twitter.com/genkuroki/stat... pic.twitter.com/KSgmNbmSY5

タグ:

posted at 23:44:40

ニケ @LingkoNIKI

20年10月26日

『シニカル・ヒステリー・アワー』スピンオフの『ロジカル・アレルギー・アワー』より。 pic.twitter.com/Ph8JVk0032

タグ:

posted at 23:38:18

黒木玄 Gen Kuroki @genkuroki

20年10月26日

#統計 私による計算結果とソースコードは以下のリンク先で確認できます。特に豊田『瀕死本』の図5.2, 5.3は対応するP値のプロットとほぼぴったり一致しています。

「頻度論vs.ベイズ」という頭の悪そうな対立図式を煽っていても、具体的に値を計算すれば化けの皮がすぐに剥がれ落ちます。計算大事。 twitter.com/genkuroki/stat...

タグ: 統計

posted at 23:30:13

Lirimy @LirimyDh

20年10月26日

@KB_satou @genkuroki GPU のほうは同期が必要らしいです。
juliagpu.gitlab.io/CUDA.jl/develo...

タグ:

posted at 23:29:40

黒木玄 Gen Kuroki @genkuroki

20年10月26日

#統計 豊田『瀕死本』がひどい本であることを確認するには、その本がP値の代替物として勧めている「仮説が正しい確率」(←概念自体まずい)が、片側検定などのP値に近似的に一致していることをコンピュータで確認すると良いです。

P値の代替物として別のP値を勧めているのと本質的に同じwww

続く twitter.com/chap0201/statu...

タグ: 統計

posted at 23:26:15

黒木玄 Gen Kuroki @genkuroki

20年10月26日

#Julia言語 配列を函数の引数に渡した結果の計算時間を計測するときには、配列の変数に $ をつけるとより正確になります。

@ btime $ A * $ B

とか

@ benchmark $ A * $ B

@ $ の直後の空白は除く。 twitter.com/kb_satou/statu...

タグ: Julia言語

posted at 23:19:11

K.B.砂糖 @KB_satou

20年10月26日

単純な行列積なら倍精度でもCPUより圧倒的に速いし
よくわからんくなってきた pic.twitter.com/HOBhfYt5g2

タグ:

posted at 23:10:20

Yoshiaki Kawazu @kawaz

20年10月26日

@genkuroki 気になって検索してみたら 「30%と70%の食塩水のツイート」が確かに大量に出てくるね。でも何故かこの同種のツイート群をよくみると登場人物や台詞が全部微妙に違ってて、何かのコピペネタなのかこれ?という明後日な方向の別の疑問が湧いてきて、気になってもう夜しか寝れないww

タグ:

posted at 23:05:22

積分定数 @sekibunnteisuu

20年10月26日

@UFOprofessor @yamazaksv2 @genkuroki 私は算数・数学を教えるときは、線密度や面密度を扱う。体積密度はうかつには扱えない。

 食塩水の問題も飽和の濃度を確認しながらやる。

 こういうのって、教材作る側は神経使っていると思ったけど・・・

タグ:

posted at 22:52:29

okuchan@ @oku__chan

20年10月26日

↓掛け算順序ルールと「やり方を子供に考えさせる授業」が悪魔合体していた授業を参観日に見た話です。 twitter.com/oku__chan/stat...

タグ:

posted at 22:25:30

okuchan@ @oku__chan

20年10月26日

@GreatDemon1701 @genkuroki しかもひどいことに、最後のまとめで、みんなにどんなことがわかったか発表させていて
「かける順序をかえて計算しやすくできることがわかりました!」と発表した子に対して、先生が「いや、順序はかえてないよ!」と否定したんですよ。
その子は混乱していました…
あまりのことに絶句した私でした…

タグ:

posted at 22:10:29

okuchan@ @oku__chan

20年10月26日

@GreatDemon1701 @genkuroki そうできればシンプルでしょうに、なぜか小学校では掛け算の順序をかえてはならない規則があるみたいです。
文章題で単位×個数で立式しようというのは理解しますが、単純に計算の仕方の指導ですら順序は逆にしてはいけないオキテがあるようでびっくりしました。

タグ:

posted at 21:58:44

くろたんく @black_tank_top

20年10月26日

@genkuroki ありがとうございます!
調べてreverseを使いました。
遅延評価の方法は知らなかったので、勉強になりました!

タグ:

posted at 21:52:15

非公開

タグ:

posted at xx:xx:xx

非公開

タグ:

posted at xx:xx:xx

非公開

タグ:

posted at xx:xx:xx

非公開

タグ:

posted at xx:xx:xx

非公開

タグ:

posted at xx:xx:xx

非公開

タグ:

posted at xx:xx:xx

非公開

タグ:

posted at xx:xx:xx

非公開

タグ:

posted at xx:xx:xx

黒木玄 Gen Kuroki @genkuroki

20年10月26日

#Julia言語 逆順にするのは reverse 函数なのですが(添付画像1,2)、それ以外に、Iterators.reverse(a) や @ view(a[reverse(axes(a,1))]) のような「遅延評価」をやってくれる選択肢もある(添付画像3,4)。

それぞれ長所と短所がある。

gist.github.com/genkuroki/f58b... twitter.com/black_tank_top... pic.twitter.com/uc9Ut0dcPV

タグ: Julia言語

posted at 21:48:00

非公開

タグ:

posted at xx:xx:xx

The Julia Language @JuliaLanguage

20年10月26日

Despite best effort from us and from #JuliaLang users, things still might not make sense (errors, docs, etc).

If you are confused, frustrated, or the like... chances are other people feel the same way. Feel free to always open an issue so we can try and address this! twitter.com/archiloque/sta...

タグ: JuliaLang

posted at 21:29:49

黒木玄 Gen Kuroki @genkuroki

20年10月26日

#Julia言語 行列を扱う函数の引数の「型指定」=「型の制限」を

function f(x::Matrix{Float64}) ~ end

のように書くと、Float32のCuArrayを使用不可能な函数ができあがる。

「型の制限」を書くのをやめたり、ゆるふわな抽象型で「型の制限」を行っておけば大丈夫。 twitter.com/kb_satou/statu...

タグ: Julia言語

posted at 21:26:21

積分定数 @sekibunnteisuu

20年10月26日

@atsuko92717587 @okup123456789 >流石に分数まで定規ってことは、、、、そこまで学校は馬鹿じゃないと思いたいです。

馬鹿ですよ。

twitter.com/saya_lazy/stat...

タグ:

posted at 21:10:51

黒木玄 Gen Kuroki @genkuroki

20年10月26日

#Julia言語

整数による / での割り算は浮動小数点数になる←これ要注意!

他に ÷ だけではなく、有理数型を作る // もある。 twitter.com/SGThr7/status/... pic.twitter.com/v7RzbXnCon

タグ: Julia言語

posted at 21:07:25

K.B.砂糖 @KB_satou

20年10月26日

というか colab こんなガチャみたいになってたのか。(Proを使えということか)

タグ:

posted at 21:01:05

積分定数 @sekibunnteisuu

20年10月26日

@OokuboTact @takusansu @golgo_sardine #超算数

トンデモ算数を推進する算数教育界主流派のド真ん中の人ですね。

タグ: 超算数

posted at 21:00:52

OokuboTact 大久保中二病中年 @OokuboTact

20年10月26日

@takusansu @sekibunnteisuu @golgo_sardine 市販の指導要領の解説書を出したりしている人です

新潟市教育委員会がマイスターを認定しているのか!

www.meijitosho.co.jp/detail/4-18-27... pic.twitter.com/bLnca0IEC7

タグ:

posted at 20:59:55

K.B.砂糖 @KB_satou

20年10月26日

いいGPUの倍精度は? 速度は? 調べてみました!!
いかがでしたか? 今回はいいGPUがツモれなかったので K80 か P100 がでるまで試したいです!! (ためしたくない) pic.twitter.com/NXina5M6ME

タグ:

posted at 20:59:02

Daisuke KATO @Dsuke_KATO

20年10月26日

NVIDIAのGPUシリーズ確か4つあったような…

タグ:

posted at 20:50:07

黒木玄 Gen Kuroki @genkuroki

20年10月26日

#Julia言語 で型について気になる場合には「動的な型の伝搬を見る」以外に真っ当な処方箋はないと思われる。

タグ: Julia言語

posted at 20:38:59

黒木玄 Gen Kuroki @genkuroki

20年10月26日

#Julia言語

Juliaで引数や返り値の型を指定しても、「より厳格かつ正確なプログラム」になったりしないという話。

具体例を見れば、返り値の型指定のせいでバグの発見が遅れる可能性が高まったりすることも分かる。

引数の型指定は「型の制限」と呼ばれるべきで、きつ過ぎる制限はひどく有害。 twitter.com/genkuroki/stat...

タグ: Julia言語

posted at 20:37:26

WIRED.jp @wired_jp

20年10月26日

家にこもる富裕層、活発に行動する貧困層bit.ly/3jnMGlK

タグ:

posted at 20:30:41

Norbert Preining @norbusan

20年10月26日

@henrich 今日Juliaの新しいバーションのパッケージをアップした。フリーズまでJulia 1.6を入れたいと思います。 #julialang

タグ: julialang

posted at 20:30:41

TaKu @takusansu

20年10月26日

@OokuboTact @sekibunnteisuu @golgo_sardine 特定の図を、特定の式を書かせる為に利用している感じですね。
算数教育界wではありふれたダメ指導でしょう。

タグ:

posted at 20:23:33

String @String35712

20年10月26日

最近pythonの遅さが気になり始めたんだけど、Juliaがいいのかな?
会社で使ってる人見たことないけど…

タグ:

posted at 20:16:06

OokuboTact 大久保中二病中年 @OokuboTact

20年10月26日

@sekibunnteisuu @golgo_sardine 算数教育の権威の1人ですね。
「算数教育の権威」とは言わずに「算数マイスター」と自称するんですね

タグ:

posted at 20:08:06

積分定数 @sekibunnteisuu

20年10月26日

@golgo_sardine #超算数
この人ですね。
studysapuri.jp/course/teacher...
>思考力を鍛える算数・数学界の立役者

wwww

スタディサプリってよく知らないけど、こういうレベルの低い講師も入り込んでいるんですね。

タグ: 超算数

posted at 20:07:07

K.B.砂糖 @KB_satou

20年10月26日

いくら壊滅的でもCPUよりは速い pic.twitter.com/6lU9RlAv5A

タグ:

posted at 20:04:12

Cristóvão D. Sousa  @CristovaoDSousa

20年10月26日

@archiloque @JuliaLanguage Probably both, but it has been recognized that error messages must be improved, possible in the next release: github.com/JuliaLang/juli... and discourse.julialang.org/t/human-readab...

タグ:

posted at 19:56:18

黒木玄 Gen Kuroki @genkuroki

20年10月26日

@SGThr7 #Julia言語 PyCall.jl経由でIPython. display. Audio を使ってみました。音を鳴らせました。

nbviewer.jupyter.org/gist/genkuroki... pic.twitter.com/YXYFGoQjUp

タグ: Julia言語

posted at 19:50:32

Daisuke KATO @Dsuke_KATO

20年10月26日

Quadro, Teslaは倍精度でも速度が出j、GeForceは単精度用っていうイメージ。知らんけど

タグ:

posted at 19:30:24

非公開

タグ:

posted at xx:xx:xx

非公開

タグ:

posted at xx:xx:xx

でえもん @GreatDemon1701

20年10月26日

@oku__chan @genkuroki 最初から掛ける順番なんかどうでもいいから計算しやすいところから掛けてオッケー、って言えばいいのに、式の中ではどうのこうの、計算のところだったらいいとか話をややこしくしすぎ。
シンプルイズベスト、あっ最上級だから「ザ」がいるんだけどカタカナで書いたら日本語なので大丈夫。

タグ:

posted at 19:15:35

(「・ω・)「ガオー @bicycle1885

20年10月26日

GPUって普通倍精度サポートしてなくなくない?

タグ:

posted at 19:14:39

K.B.砂糖 @KB_satou

20年10月26日

最近の GPU なら大丈夫だと思ってた……うかつ。
げきつよGPUほしい

タグ:

posted at 19:11:30

K.B.砂糖 @KB_satou

20年10月26日

GeForce RTX 2060 で、たしかに 倍精度の性能は低いみたいでした。ご指摘ありがとうございます。 twitter.com/implict_none/s...

タグ:

posted at 19:10:18

(「・ω・)「ガオー @bicycle1885

20年10月26日

給付金もう一発来い!

タグ:

posted at 19:07:07

暗黙の型宣言 @implict_none

20年10月26日

@KB_satou @ceptree 使用しているGPUのモデルによっては,倍精度の理論演算性能が単精度の1/32程度しかない場合もあるので,まずはGPUのモデルを確認されるのがよいと思います.

タグ:

posted at 19:03:45

K.B.砂糖 @KB_satou

20年10月26日

この違いがどこから来るかは演習問題とする pic.twitter.com/8eFgVdYPRz

タグ:

posted at 19:03:36

K.B.砂糖 @KB_satou

20年10月26日

ちなみに Float64 だとCPUより遅かったです。

タグ:

posted at 18:56:07

でえもん @GreatDemon1701

20年10月26日

@oku__chan @genkuroki 15×23×2だったらどうするのか質問すべきでした。
マンガのように頭から煙だすかも。

タグ:

posted at 18:53:30

K.B.砂糖 @KB_satou

20年10月26日

CuArray に入れれば、LinearAlgebla の関数がそのまま使えるの、多重ディスパッチを最大限活かしてる感じがしていい。便利すぎてゾクってした。 pic.twitter.com/1qRqhG7GnW

タグ:

posted at 18:51:45

ゴルゴ・サーディーン @golgo_sardine

20年10月26日

「算数マイスター」だそうです。#掛算 → 尾﨑正彦のブログ: 7×4,4×7? ozakizao12.blogspot.com/2020/10/blog-p...

タグ: 掛算

posted at 18:48:34

SGT @SGThr7

20年10月26日

juliaって`4/2`と`4÷2`は別なのか
むずかちい pic.twitter.com/rnc8xNIuSh

タグ:

posted at 18:20:13

Naoya Kihara/木原直哉 @key_poker

20年10月26日

永瀬王座が普通の四間飛車で藤井二冠相手に優勢かあ。
四間飛車党歓喜だなあ。こういう将棋を見たいアマチュアは多い。

タグ:

posted at 18:15:16

茅葺屋根 @CONATUSconatus

20年10月26日

事前勉強としてJavaを軽く触ったし、やっと書店に届いてのでJulia本格的に稼働
#Julia言語 pic.twitter.com/EvUpIeNd4c

タグ: Julia言語

posted at 17:55:30

okuchan@ @oku__chan

20年10月26日

考えさせる前に、こういう楽になるやり方があるよ、とおしえちゃってから、じゃあ、どんな掛け算が10の倍数になるかな?と例をみせて法則性にきづかせてから、3つの掛け算の演習させたらよかったんじゃないのかと思った。
案の定、次男はわかってなかったから、家で上記の説明したらすっと入ったわ。

タグ:

posted at 17:51:21

okuchan@ @oku__chan

20年10月26日

いやー、かっこをつけたのは、先に計算する、という意味で、逆にしたわけじゃありません!とかいう説明、三年生にわかるのだろうか?参観していた大人へのアピールだった気がする…

タグ:

posted at 17:41:46

okuchan@ @oku__chan

20年10月26日

例えば、23×15×2といった計算の仕方を考えようという授業で、先に23×15をしてから2をかけるのは面倒だから、先に15×2をしてから23×30をすれば簡単→23×(15×2)と表記していて、あくまでも「掛け算の順序はかえてません!」と先生は主張していて、先生は大変だなと思いましたね…何と戦っているのか…

タグ:

posted at 17:40:15

SGT @SGThr7

20年10月26日

julia製のIPython.displayって無いのかな

タグ:

posted at 17:32:20

黒木玄 Gen Kuroki @genkuroki

20年10月26日

外付けのハードディスクにバックアップ

タグ:

posted at 16:56:05

ceptree @ceptree

20年10月26日

コードでdtとするかΔtとするか迷う

タグ:

posted at 16:51:33

Yuma ICHIKAWA @yuma_1_or

20年10月26日

遅すぎる。

コード最適化もめんどいし、深層ボルツマンマシンJuliaで書こう(今月中に)

タグ:

posted at 16:30:43

あかやぎ @akayagi

20年10月26日

ぼくはJulia言語全然触ったことないけど、学生氏がそれで数値流体力学のコードもたくさん書いてるらしいので、学生氏にお願いすると何とかなる日が来るだろうか

...と言い続けてるうちに公開してくれないかな

タグ:

posted at 16:17:53

黒木玄 Gen Kuroki @genkuroki

20年10月26日

#Julia言語 f(a,b,c)におけるaの型で同名のどのfが実行されるかが決まるなら、a.f(b,c)という書き方は合理的。

多重ディスパッチでは(a,b,c)の型の組み合わせで同名のどのfを実行するかが決まるので、同様の書き方をすると、(a,b,c).f()のように単にfを後置するだけになってしまう(笑)。意味無し。

タグ: Julia言語

posted at 16:03:25

K.B.砂糖 @KB_satou

20年10月26日

これ、Cxxwrap.jl 使えば Julia 言語単体でもいけるんじゃろか? (pywinauto では comtypes 使って UIAutomationCore.dll をゴニョゴニョしてるので Julia でもできる予感はある) twitter.com/KB_satou/statu...

タグ:

posted at 15:07:01

shg @shg

20年10月26日

julia-vterm.el がMELPAに登録された。 #Julia言語 #emacs

github.com/shg/julia-vter...

タグ: emacs Julia言語

posted at 14:34:57

SGT @SGThr7

20年10月26日

juliaが使える電卓をください

タグ:

posted at 13:37:55

Zenn公式 @zenn_dev

20年10月26日

✈ ピックアップ ✨

Juliaの型推論アルゴリズムを実装する
by @kdwkshh

zenn.dev/aviatesk/artic...

タグ:

posted at 12:39:00

黒木玄 Gen Kuroki @genkuroki

20年10月26日

#Julia言語 「オブジェクトにメソッドをぶら下げること」はJuliaでもできます。

Pi._div(Six).sin().log() でlog(sin(π/6))を計算するようにもできる(添付画像)。

この機能はPyCall.jlで大活躍しています。

「できるけど、普通の状況では不合理なのでやらない」と「絶対にできない」では大違い。 twitter.com/genkuroki/stat... pic.twitter.com/TizwBWVlE2

タグ: Julia言語

posted at 11:54:50

mnkt @mnkt28846665

20年10月26日

Julia もっと Functor みたいな圏論の概念使いたいな

タグ:

posted at 11:46:35

非公開

タグ:

posted at xx:xx:xx

非公開

タグ:

posted at xx:xx:xx

非公開

タグ:

posted at xx:xx:xx

ごまふあざらし(GomahuAzaras @MathSorcerer

20年10月26日

お? Julia1.6-DEV だと precompile が並列でされるようになってる? pic.twitter.com/KYzE9IhiOO

タグ:

posted at 11:38:50

黒木玄 Gen Kuroki @genkuroki

20年10月26日

#Julia言語 @ code_warntype の結果を追加

強い警告色で表示された部分があると、何かやらかしてしまっている。

人間は注意していてもミスるので、コンピュータさんに可能な限りチェックしてもらったほうが安全。

@ code_warntype は神!

nbviewer.jupyter.org/gist/genkuroki...

nbviewer.jupyter.org/gist/genkuroki... pic.twitter.com/EopKr7HGk7

タグ: Julia言語

posted at 11:29:45

あかやぎ @akayagi

20年10月26日

1からJuliaプログラミングで学ぶ流体力学の数値解析法

タグ:

posted at 11:28:38

あかやぎ @akayagi

20年10月26日

当方にも届きましたぞ。 pic.twitter.com/uNccfmgFp9

タグ:

posted at 11:24:06

黒木玄 Gen Kuroki @genkuroki

20年10月26日

#Julia言語 「オブジェクトにメソッドがぶら下がる」という発想にオーバーフィッティングした状態から出発すると苦しくなりますが、そうでない「ど素人」は全然苦しくならない(笑)

タグ: Julia言語

posted at 10:45:25

黒木玄 Gen Kuroki @genkuroki

20年10月26日

#Julia言語 a.f(c)のスタイルでは、メソッドfがオブジェクトaに「ぶらさがる」格好になり、名前の付け方の重複も問題にもそれである程度対処できる。

Juliaでは名前空間の分離はmoduleを使って行います。しかし、「オブジェクトにメソッドがぶら下がる」という発想は捨てないといけない。

タグ: Julia言語

posted at 10:42:07

黒木玄 Gen Kuroki @genkuroki

20年10月26日

#Julia言語 「与えられた引数の組み合わせについて実行可能な定義域が最も小さな同名の函数が実行される」と素直に考えることができれば簡単なのですが、a.f(c)のスタイルへの過学習を出発点にしてしまうと苦しむことになると思う。過学習に気付けば苦しまずにすむ。

タグ: Julia言語

posted at 10:36:53

Julia Bloggers @juliabloggers

20年10月26日

Checkpoint: Implementing Linear Relations for Linear Time Invariant Systems (Re-post) www.juliabloggers.com/checkpoint-imp...

タグ:

posted at 10:34:00

黒木玄 Gen Kuroki @genkuroki

20年10月26日

#Julia言語 a.f(c)とb.f(c)におけるf(c)で何が実行されるかが、aとbの型で決まるスタイルとJuliaは違う。

Juliaではf(a,c)とf(b,c)で何が実行されるかは、それぞれa,cの型の組み合わせ、b,cの型の組み合わせで決まる。

同名のメソッドを無制限に増やせるJuliaでは違う考え方が必要になります。

タグ: Julia言語

posted at 10:32:32

黒木玄 Gen Kuroki @genkuroki

20年10月26日

#Julia言語 「素直に仕様に従えば、どのような思い込みが危険で、どうすると効率的か」について考えるのが普通で当たり前のことのはずなのに、Juliaが新しい試みをしまくっているせいで、それに対応できずに「型指定」について不適切な考え方をしている場合をよく見るような気がします。

タグ: Julia言語

posted at 10:23:23

黒木玄 Gen Kuroki @genkuroki

20年10月26日

#Julia言語 「引数の型が相当に一般の場合でも動くジェネリックな函数」と「引数の型が特殊な場合専用に最適化された同名の函数」の両方を書くことは、ディスパッチの使い方の典型例です。

不可思議な速度低下や不具合が、前者のジェネリックな函数の方が実行されているせいで起こることがあります。

タグ: Julia言語

posted at 10:18:57

ごまふあざらし(GomahuAzaras @MathSorcerer

20年10月26日

まずこっちから落ち着いて読んでみよう

タグ:

posted at 10:18:43

黒木玄 Gen Kuroki @genkuroki

20年10月26日

#Julia言語 Juliaでは定義域の違う同名の函数を幾らでも作れるので、「函数の引数の型を強制できる」と安易に考えると痛い目にあいます。

自分では函数の引数の型を強制したつもりになっていても、フォールバックとしていつのまにか書かれていた同名の函数(笑)が実行されるかもしれない。

タグ: Julia言語

posted at 10:14:43

黒木玄 Gen Kuroki @genkuroki

20年10月26日

#Julia言語 多重ディスパッチについては「与えられた引数の組み合わせについて実行可能な定義域が最も小さな同名の函数が実行される」と覚えておけばよいので簡単です。

これ、ものすごく自然なスタイルなので、一度理解してしまえば、「多重ディスパッチ」というジャーゴンを忘れても困りません。

タグ: Julia言語

posted at 10:04:50

黒木玄 Gen Kuroki @genkuroki

20年10月26日

#Julia言語 多重ディスパッチは単に多変数函数の場合にも以上で説明した方法で同名の函数のどれを実行するかを決めること:

f(x, y) = x + y
f(x::AbstractString, y) = (x, y)
f(x::AbstractString, y::AbstractString) = x * y

のとき

f(1, 2) → 3
f("1", 2) → ("1", 2)
f("1", "2") → "12"

タグ: Julia言語

posted at 10:01:12

黒木玄 Gen Kuroki @genkuroki

20年10月26日

#Julia言語

A,B,C,Dのどれもxを含まなければ「メソッド(計算方法)が見つからない」というエラーになる。

A,B,C,Dのうち複数がxを含み、包含関係について最小のものがないならば、「どのメソッドを実行したらよいのか曖昧になりました」というエラーになる。

タグ: Julia言語

posted at 09:55:00

黒木玄 Gen Kuroki @genkuroki

20年10月26日

#Julia言語 ディスパッチについて単純化した説明

集合Ωの部分集合A,B,C,D上で同名の函数fが定義されていたとしましょう。

値x∈Ωについてf(x)を実行しようとしたとき、xを含むA,B,C,Dのうち包含関係について最小のものを定義域とするfが実行される、というのがよくあるディスパッチの仕組みです。 twitter.com/genkuroki/stat...

タグ: Julia言語

posted at 09:54:58

ひよこちゃん @tb_hiyokochan

20年10月26日

マジレスすると、科学技術計算に使うなら、jupyterとかjuliaとかのほうがラクかも。プロットなどは特に

タグ:

posted at 09:39:47

くろたんく @black_tank_top

20年10月26日

JuliaでAtCoderのABCのAやBを解いてるけど、リストの連結とか商の出し方とか、indexingっていうの?スライスのやり方とか、Pythonのリストの逆順a[::-1]とか使えないし、いわゆるハンドリングができてなくて、毎回調べてる。。。Juliaで色々と実装できるようになるにはまだまだかかりそうだなぁ・・・

タグ:

posted at 09:34:14

KTYD @KTYDRCB

20年10月26日

まあPythonをメインに触って、Pythonしかやったことないって人にJuliaやってみてほしいわ。どんだけPythonがだるいかわかるから。

タグ:

posted at 09:30:58

黒木玄 Gen Kuroki @genkuroki

20年10月26日

#Julia言語

実行直前に型の伝搬が確定する仕組みのJuliaでは、事前の静的型チェックは不可能なので、型の伝搬の確認が重要になります。

@ code_warntype や @ code_typed で確認できる。

しかし、それだけだと色々不十分なので、新しい技術の開発が必要な分野になっていると思います。 twitter.com/genkuroki/stat...

タグ: Julia言語

posted at 09:29:39

黒木玄 Gen Kuroki @genkuroki

20年10月26日

#Julia言語

function f(x::Int64) ~ end

のような函数の引数xのInt64型への「型指定」は「引数の型の制限」と言う方がJuliaでの多重ディスパッチの実態を適切に表現していると思う。

制限になっていることを意識していれば、狭過ぎる制限が害になることも分かりやすくなる。

タグ: Julia言語

posted at 09:24:28

黒木玄 Gen Kuroki @genkuroki

20年10月26日

#Julia言語

「型推論」よりも「型の伝搬」と言う方が、私のような素人にとっては実際にやっていることがわかりやすい。

Juliaにおける「型の伝搬」に関する解説の決定版かも↓

zenn.dev/aviatesk/artic...

タグ: Julia言語

posted at 09:18:21

中村 良幸 (Nakamura Yosh @nakayoshix

20年10月26日

なるほど、Juliaであえて厳密な型指定をしないというのはそういう意味だったんですね。今までこういう考え方は全然知らなかったので、このスレを読んで大変勉強になりました。 twitter.com/genkuroki/stat...

タグ:

posted at 09:15:32

黒木玄 Gen Kuroki @genkuroki

20年10月26日

#Julia言語 もっとガチでどうするべきかを考えたい人は、以下のリンク先のリンク先の解説を見るとよいと思います。

「型の伝搬」の仕組みが非常に分かりやすく解説されています。 twitter.com/kdwkshh/status...

タグ: Julia言語

posted at 09:12:05

黒木玄 Gen Kuroki @genkuroki

20年10月26日

#Julia言語 私のようなプログラミング能力の低い人であってもすぐにできたことは、公式ドキュメントのPerformance Tipsで使用が推奨されている @ code_warntype マクロで、函数の引数の型が他のオブジェクトにどのように伝搬して行くかを確認することです。

docs.julialang.org/en/v1/manual/p...

タグ: Julia言語

posted at 09:08:02

黒木玄 Gen Kuroki @genkuroki

20年10月26日

#Julia言語 例えば、以上で見たように、函数の引数や返り値の「型指定」で安全を保とうとする発想は通用しません。

可能な限りの安全を保ちたければ、全然別の考え方をする必要があります。

今まで通用して考え方が通用しなくなったら、別の考え方をすればよいというのは当たり前のことでしょう。

タグ: Julia言語

posted at 09:04:37

黒木玄 Gen Kuroki @genkuroki

20年10月26日

#Julia言語 「事前にコンパイルしたバイナリの実行」の場合と相性の良い考え方の多くはJuliaでは通用しません。

「事前にコンパイルしたバイナリの実行」の場合にあまりにも深く過学習してしまったせいで戻って来れなくなった人は、新しい試みには対応できなくなるわけです。

タグ: Julia言語

posted at 09:01:43

黒木玄 Gen Kuroki @genkuroki

20年10月26日

#Julia言語 以上の問題は引数の型制限を、StringからAbstractStringにゆるめたり、引数の型制限を撤廃すれば解決します。

函数の引数の型を狭く制限し過ぎると、「正規表現に一致する部分文字列」などの普通に使えて欲しい機能が使えなくなってしまいます。

函数の引数の型制限は慎重に行うべき。 pic.twitter.com/2JNEhJVWH7

タグ: Julia言語

posted at 08:59:25

黒木玄 Gen Kuroki @genkuroki

20年10月26日

#Julia言語 文字列処理でも同様の注意が必要。

文字列を3重化する函数を

triple_String(s::String) = s^3

と引数をString型に制限して定義したとしましょう。

正規表現に一致した「文字列」tを3重化しようとするとできない!

添付画像中のtはString型ではなく、SubString型になるのです。続く pic.twitter.com/HYjVeexxTE

タグ: Julia言語

posted at 08:56:01

黒木玄 Gen Kuroki @genkuroki

20年10月26日

#Julia言語 その原因は @ view(u[6:end]) が Vector 型ではなく、SubArray 型になるからです。

型に関する十分な理解抜きに型指定するくらいなら、添付画像のように引数の型指定なしで書いた方が安全です。

速度的劣化は起こりません。

(VectorをAbstractVectorで置き換えることもできる。) pic.twitter.com/PVg6Kwuq9A

タグ: Julia言語

posted at 08:50:58

黒木玄 Gen Kuroki @genkuroki

20年10月26日

#Julia言語 u[6:end]をそのまま使うと不必要に見えるメモリアロケーションが発生することに気付いた人は、Juliaの公式ドキュメントに従って @ view マクロを追加して、無駄なアロケーションを防ごうとするでしょう。

その瞬間に今まで正常に動いていたプログラムが動かなくなる!

続く pic.twitter.com/GtYx7L9elE

タグ: Julia言語

posted at 08:47:36

黒木玄 Gen Kuroki @genkuroki

20年10月26日

#Julia言語 配列uの一部分をu1として、その一部分の離散ラプラシアンを計算したい場合があったとします。

添付画像のケースではうまく行っています。しかし~続く pic.twitter.com/syJqhwwm82

タグ: Julia言語

posted at 08:44:51

黒木玄 Gen Kuroki @genkuroki

20年10月26日

#Julia言語 f(x::ArgType)::RetTypeの::RetTypeを無くして::ArgTypeのみにした場合にも、注意深く型を指定しないとひどい目にあうことがある。

添付画像はin-place計算で1次元の離散ラプラシアンを計算する函数です。引数がVector{Float64} (Float64型の成分を持つ1次元配列)に型指定されている。続く pic.twitter.com/6ASyuuZkNp

タグ: Julia言語

posted at 08:43:20

黒木玄 Gen Kuroki @genkuroki

20年10月26日

#Julia言語 Juliaは便利なのですが、トレードオフも当然あります。

不適切な型指定は、トレードオフのデメリット側のみを受け入れて、Juliaの便利なところを使わずに終わる原因になり兼ねない。

事前に静的にコンパイルしてから実行する場合への過学習を訂正する良い機会も逃すことになります。

タグ: Julia言語

posted at 08:39:36

黒木玄 Gen Kuroki @genkuroki

20年10月26日

#Julia言語 InexactError: Int64(3.0000000000000004) が出る仕組みは @ code_warntype f(3) で確認できます。

f(x::Int64)::Int64の後者の::Int64はBase.convert(Int64,~)に変換されており、Int64に変換できない場合にはエラーが出て止まるという仕組みになっています。

添付画像のg,hも参照。 pic.twitter.com/CaGcyPnEKM

タグ: Julia言語

posted at 08:34:10

黒木玄 Gen Kuroki @genkuroki

20年10月26日

#Julia言語 ところが f(3) を実行した途端に

InexactError: Int64(3.0000000000000004)

と言われる!(笑)

この例を見ただけで、【型を指定することによって、より厳格かつ正確なプログラムを作成することができます】は誤りであり、そういう思い込みが危険であることがすぐに分かると思います。 pic.twitter.com/2jAcCtSjUC

タグ: Julia言語

posted at 08:34:08

黒木玄 Gen Kuroki @genkuroki

20年10月26日

#Julia言語

function f(x::Int64)::Int64
0.1x * 10
end

は一目見ただけで非常にまずいプログラムなのですが、Juliaでは合法的にこれで函数が定義されます。

しかも、さらに悪いことに、f(1), f(-5), f(123)などが正常に実行されます。続く pic.twitter.com/YbCw7tIFP4

タグ: Julia言語

posted at 08:34:06

黒木玄 Gen Kuroki @genkuroki

20年10月26日

#Julia言語 Juliaは実行前にすべてを静的に型チェックをしてから実行可能な仕組みではないので、【型を指定することによって、より厳格かつ正確なプログラムを作成することができます】という説明は誤り。

「事前にコンパイルしたバイナリの実行」の場合への過学習はよくないです。具体例に続く。 twitter.com/smj_tcbot/stat... pic.twitter.com/gAbDofGMkM

タグ: Julia言語

posted at 08:34:02

smj_tcBt @smj_tcBot

20年10月26日

Julia早引きノート[10]関数(2)応用編
qiita.com//ttabata/items...

タグ:

posted at 06:34:58

Masami HIRATA @msmhrt

20年10月26日

Julia ってググりにくいことで有名なあの言語かあ。言語を実装することには興味ないけど、静的解析に少し興味があったので読んでて面白かった。 twitter.com/kdwkshh/status...

タグ:

posted at 05:59:37

@genkurokiホーム
スポンサーリンク
▲ページの先頭に戻る
ツイート  タグ  ユーザー

User

» More...

Tag

» More...

Recent

Archive

» More...

タグの編集

掛算 統計 超算数 Julia言語 数楽 JuliaLang 十分 と教 モルグリコ 掛け算

※タグはスペースで区切ってください

送信中

送信に失敗しました

タグを編集しました