黒木玄 Gen Kuroki
- いいね数 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 を見て下さい。
2021年04月15日(木)
#Julia言語
* Animal抽象型に共通のメソッドnameを定義しておく。
* 名前に < > を追加したいなら、共通のメソッドで行う。(添付画像ではBase. showがそれ)
* structのフィールドとAPIは分離してあった方が便利(CatWithRandomNamesがその例)
が普通だと思います。
gist.github.com/genkuroki/3dc3... twitter.com/abap34/status/... pic.twitter.com/9Yej9JyW4E
タグ: Julia言語
posted at 00:13:10
#Julia言語 Base. showで名前を表示するときの形式を定義していれば、表示ではなく、文字列として利用したくなったら、sprint(show, x) が使えます。
「名前の表示」の形式はBase. showの定義一ヶ所でたりる。 pic.twitter.com/uiCnnUEZdG
タグ: Julia言語
posted at 00:16:09
3〜4年前だけど、娘の中学でもやってた。教卓に名簿を置いて発言するたびに正の字をつける。一見公平なようだけど指されないとカウントされないから結局先生の好み次第って話。まあ、それがどれくらい内申に反映されたかは例によって明かされないから、発言を促すための単なる脅しだった可能性もある。 twitter.com/kazu0402cd/sta...
タグ:
posted at 00:37:48
前立腺がんにはPSAというマーカーがあるためにがん検診が普及した結果,上記のような事実がわかってきたのです.さがせばさがすほどより多くの前立腺がんが見つかるのですが,それをすべて治療しても死亡率は変化しませんでした.そういったことでいまではPSAスクリーニングは推奨されなくなりました.
タグ:
posted at 01:01:18
がん早期発見のパラダイムは強力で,がんは治療しなければどんどん進行し,転移し,最後は死にいたると考えられています.しかしがんにはさまざまなものがあり,前立腺がんの多くは進行せず,とくに心配する必要がないことがわかってきました.そして甲状腺がんにおいても同様のことがいえそうなのです
タグ:
posted at 01:08:41
非公開
タグ:
posted at xx:xx:xx
こういったがんは成長があまりにおそいかかわらないために,症状がでたり死亡することはありません.スクリーニングの最大の問題はこういったがんを区別せずに見つけてしまうことです.過剰診断かを判断するためには治療せずに経過をみることですが,ほとんどが治療を受けるのでわからずに終わります.
タグ:
posted at 01:22:09
非公開
タグ:
posted at xx:xx:xx
非公開
タグ:
posted at xx:xx:xx
非公開
タグ:
posted at xx:xx:xx
非公開
タグ:
posted at xx:xx:xx
甲状腺については今回は直接論じませんが,結局わたしたちが見つける甲状腺がんの数は,どのくらい熱心にさがすかということに関係してそうです.生検をおこなえばおこなうほど多くのがんがみつかってきます.これは潜在的な甲状腺がんが非常にたくさんあるとすれば,おおいにあり得ることでしょう.
タグ:
posted at 01:33:51
学部4年のゼミを開始。今年は院進予定者はいないので、執筆中の教科書を総点検してもらうことに。そういう意味では、今年のゼミは私が学生から教えられる立場となります。今日も教科書の分かりにくい箇所をかなり指摘してもらい、大変有意義でした。なぜ分かりにくいのかも事細かに教えてくれる。
タグ:
posted at 01:41:11
非公開
タグ:
posted at xx:xx:xx
I have been using #Jupyter notebooks for my #Python classes, but after spending only a couple of hours working with #Pluto, I realized that it is by far better. It is more functional, elegant and light and it is aesthetically superior. Check out the talks on the first #PlutoCon
タグ: Jupyter Pluto PlutoCon Python
posted at 03:15:05
Some features that I love:
- Pluto re-invents reactivity in notebooks by allowing automatic cell updating when a variable changes
- It has a very friendly UI
- The whole workflow is very intuitive.
#JuliaLang #Pluto
posted at 03:20:29
Bruce Tate: grox.io @redrapids
Today, I am finishing up the chapter for Flux training. The core of this book has been the math behind machine learning. Flux and @julialang make great teaching platforms because the math mirrors the platform. ->
タグ:
posted at 03:35:25
Bruce Tate: grox.io @redrapids
A couple of things were crystalized for me in this process. One, some of my students didn't understand that the training process holds the training data constant and makes the weights and biases in the model variable. The gradients are with respect to the weights and bias. ->
タグ:
posted at 03:35:26
Bruce Tate: grox.io @redrapids
Two, it helps to work the training step in two ways. First, with the automated tool. Second, by applying the gradients and doing the update explicitly. Both of these need to be done both with a simple line and then with multidimensional, multilayer models.
タグ:
posted at 03:35:26
Bruce Tate: grox.io @redrapids
All in all, it's been a most enjoyable experience.
タグ:
posted at 03:35:26
非公開
タグ:
posted at xx:xx:xx
Small update on the Julia plugin: we now have images. :) @JuliaLanguage #reproduciblescience pic.twitter.com/1eVQxpCPFq
posted at 06:53:44
富谷(助教);監修 シン仮面ライダー @TomiyaAkio
www.reddit.com/r/Julia?utm_me...
色々と質疑がされてる
#JuliaLang
タグ: JuliaLang
posted at 07:34:08
#Julia言語 パフォーマンスの観点からの補足。
docs.julialang.org/en/v1/manual/p...
は必読。計算効率的に
struct Cat <: Animal
name
end
はまずい。さらに、
struct Cat <: Animal
name::AbstractString
end
に変えてもまずい。詳しくは上のリンク先を参照。 twitter.com/abap34/status/...
タグ: Julia言語
posted at 08:12:44
#Julia言語 型名を明示的に書きたくなければ
struct Cat{T} <: Animal
name::T
end
とすれば、中身の具体型が外に見えるようになるので、型安定性は保たれます。しかし、Cat{T}の{T}がうざい場合もある。実用的には
struct Cat <: Animal
name::String
end
で多くの場合に問題ないと思う。 pic.twitter.com/GaivZCE26v
タグ: Julia言語
posted at 08:26:39
#Julia言語
struct Foo
a::Vector{Float64}
end
のとき、Foo型はmutableではないのですが、Vector型はmutableなので
x = Foo(1:5)
x.a[4] = 999
とか
y = Foo([])
push!(y.a, π, ℯ, MathConstants.γ)
とか、できます。 pic.twitter.com/HXpVSu7yNI
タグ: Julia言語
posted at 08:47:22
#Julia言語 Juliaを使い始めた人はすぐに「自分で書いたコードもusingで使えるようにしたい」と感じると思うし、私もそうだったですが、「手間が大幅に増えるだろう」と思い込んでいて、それが非常に簡単なことにずっと気付きませんでした。
pkg> generate Foo
pkg> dev ./Foo
だけで行ける。 twitter.com/genkuroki/stat...
タグ: Julia言語
posted at 09:00:30
#Julia言語 Pluto.jlについてはこのスクショも参考になると思う。
(1) 表示の▶︎部分をクリックすると展開されてより詳しく縦に表示される。
(2) 右下の Live Doc でdoc stringを閲覧できる。
Pluto.jlを最近まで余り使ったことがなかったのですが、非常に「教育的」にできていて素晴らしいです。 pic.twitter.com/y07s7tMwoC
タグ: Julia言語
posted at 09:15:39
Linuxを記述するための2番目の言語としてRustを取り入れたいという提案にLinusは否定的ではないものの、Rustコンパイラの生成したコードがメモリ確保に失敗した時にパニックせず呼び出し元に制御を戻せることが確実にならない限りカーネル空間には相応しくないとの意見。
lkml.org/lkml/2021/4/14...
タグ:
posted at 09:44:21
Cコンパイラの生成したコードはヒープに勝手にメモリを確保したりしないけど、Rustみたいにメモリ管理込みの言語だとコンパイラがヒープ確保込みのコードを生成することになるだろうからメモリ不足状況下でパニックするのでは?ユーザーランドならいいけどカーネルでそれはダメやろ?ってことですね。
タグ:
posted at 09:49:31
Astrodynamics project update: there are tubes of trajectories sometimes called “superhighways” between all of the planets in our solar system, and we can use these for cheap space travel! Another name for them is “manifolds” 🎢
www.nasa.gov/mission_pages/...
タグ:
posted at 09:50:56
I’ve been working on #JuliaLang solvers that can find these manifolds, and here are my first results! This is a “superhighway” between near Earth and the Moon (an unstable manifold near Earth-Moon L2) 🌖 pic.twitter.com/dPJdFKC0sA
タグ: JuliaLang
posted at 09:50:57
Here’s the beltway, but in space. When you plot with the right colors, it’s a real life rainbow road 🌈
If pressed, you could instead call it a “stable manifold near Earth-Moon L1” pic.twitter.com/NYAF5J9kkj
タグ:
posted at 09:51:00
「どの開発環境を使うか」は本質的な問題ではないと思う。
自分の都合に合わせて好きなものを使えばよいと思う。
しかし、Juliaを使うことの理由の1つに「パフォーマンス」があるなら、型安定で無駄なメモリ割り当てを引き起こさない効率的なコードの書き方は本質的。
タグ:
posted at 09:59:00
Juliaのパッケージ群のcomposabilityの高さを利用することがモチベーションに含まれているなら、パラメトリックタイプによる多重ディスパッチとHoly trait patternを使った設計法の習得は本質的。
タグ:
posted at 09:59:01
#Julia言語 実は野良パッケージの公開も易しい。
pkg> generate Foo
して作った自分専用の必要最小限の内容のパッケージの内容をGitHubにFoo.jlという名前のリポジトリにおいておけば、誰でも
pkg> add https: //github.com/~/Foo.jl
でインストールできるようになります。 twitter.com/genkuroki/stat...
タグ: Julia言語
posted at 10:12:03
続き。クラスベースのOOPなら、foo. と入力してタブキーを押すスタイルの補完が非常に便利に使えるようになっていることが普通だと思います。
多重ディスパッチのJuliaではそれだけだと足りない。その点に関する提案については↓
github.com/JuliaLang/juli...
私はこういう話はとても面白いと思います。
タグ:
posted at 10:26:16
mallocに失敗した時にシステムを停止させずにきちんとエラーリターンできるかどうかっていうのは組み込み系の人ならいつも気にしてるんじゃないのかな知らんけど。気にするとしんどいので代わりにstaticなアドレスに固定長でスペースを確保しておくとかしがち(可能なプラットフォームなら)だと思う。
タグ:
posted at 10:30:53
そもそも私の場合には「多重ディスパッチ」と聞いたときに最初は「なんじゃこれは?」と思いました。何がいいのか全然理解できなかった。
あと、abstract type の位置付けもずっと理解できなかった。(型のフィールドの継承はない)
続く
タグ:
posted at 10:35:44
さらに、函数fの型がtypeof(f)になることについても理解が困難でした。
函数fの型がA×B→Cの類になることはなく、単にtypeof(f)になる。(本当はもっとややこしい)
問題:どうしてJuliaはそういう仕様になっているのでしょうか?
タグ:
posted at 10:35:45
MMUのないプロセッサで任意の物理アドレスにアプリケーションをロードして走らせるようなプラットフォームだと static使えなかったりするんだよね。あ、嫌な思い出が・・・
タグ:
posted at 10:35:59
函数fを再定義するごとに函数fの型が変わり、函数fの型に依存した型の引数を持つ函数のjust-in-timeなコンパイルが実行されるので、JITによる遅延が問題になるJuliaでは、函数の型についての若干の知識があると得です。
具体的にはDifferentialEquations.jlの使用時の遅延を減らすために役に立つ。
タグ:
posted at 10:41:41
Juliaでは、具体型の概念が非常に重要です。
1.23 はNumber型かつReal型かつAbstractFloat型(後に述べた型の方がsubtypeになっている)のですが、それらの型は抽象型で具体型はFloat64です。
函数f(x)=2xをf(1.23)の形式で実行するときのコンパイルで使われる引数の型は具体型のFloat64になります。
タグ:
posted at 10:54:51
f(x)=2xをf(1.23)の形式で実行するときに使われる引数の型は抽象型のNumber, Real, AbstractFloatのどれでもなく、Float64になります。大事な点なので繰り返しました。
f(123)ならコンパイル時に引数の具体型Int64が使われる。
コンパイル結果は引数の値の具体型に最適化されます。
タグ:
posted at 10:54:52
だから、コンパイル時の「型推論」では抽象的な型がどのように伝搬して行くかではなく、値の具体型がどう伝搬して行くかを推測することになります。
Juliaでコードを書くときには、抽象型ベースではなく、1.23や123のような具体的な値の具体型ベースで考える必要があります。
続く
タグ:
posted at 10:54:53
だから、Number, Real, AbstractFloatのような抽象型のツリー型階層構造は、具体的な値の具体型達の分類の仕方を与えるという役目を果たすことになります。
抽象型はクラスに似ているのですが、クラスではないことに注意する必要があります。
タグ:
posted at 10:58:22
それでは、f(x)=2xと定義された函数の具体型は何であるべきか?
この問題に答えを与えないと函数を引数に持つ函数をJuliaのスタイルで扱えなくなる。
「コンパイル結果が十分に最適化されたものになって欲しい」という要求と矛盾しない解答が必要で、その1つの解がJulia方式なのだと考えられます。
タグ:
posted at 11:01:48
補足
f(x)=2xと函数を定義した時点ではコンパイルは実行されず、f(1.23)やf(123)を実行するときにネイティブコードへのコンパイルが実行されます。
f(1.23)を実行した後に、f(45.6)を実行すると、Float64型引数の場合のコンパイルは終了しているので再びコンパイルが実行されたりしません。 twitter.com/genkuroki/stat...
タグ:
posted at 11:18:26
#Julia言語 DifferentialEquations.jl はPythonからも使用可能で、Juliaから使った場合は添付画像のような感じ。
直立に近いところまで跳ね上がる単振り子を数値的に解いています。
添付画像②を見れば分かるように、ハミルトニアンを与えるだけで正準方程式を解いてくれます。続く twitter.com/iasadafa/statu... pic.twitter.com/5XOlg8oLQq
タグ: Julia言語
posted at 12:50:42
#Julia言語 ソースコード↓
gist.github.com/genkuroki/aacb...
julialang.org/downloads/ から公式バイナリをインストール
↓
julia> ]
pkg> add Pluto DifferentialEquations Plots StaticArrays Elliptic
pkg> バックスペース
julia> using Pluto; Pluto.run()
↓
上のURL貼り付けで実行可能 twitter.com/genkuroki/stat...
タグ: Julia言語
posted at 12:50:45
#Julia言語 DifferentialEquations.jl のデフォルトのソルバは時刻の刻み幅が適応的で可変。dtmaxを設定しておいた方が安全な場合がある。非常に沢山のソルバが実装されています。
PythonやRからも使える。
github.com/SciML/diffeqpy
github.com/SciML/diffeqr
タグ: Julia言語
posted at 12:56:30
#Julia言語 DifferentialEquations.jl の使い方自体よりも、それを使って得た数値解をいい感じにプロットする方が難しかったりする。
diffeq.sciml.ai/dev/basics/sol...
diffeq.sciml.ai/dev/basics/plot/
あたりの参照が必須。
タグ: Julia言語
posted at 12:59:11
牧田寛氏 @BB45_Colorado の私に対する複数回の名誉毀損言動につきまして、Twitter, 内容証明郵便、レターパックを用いて度重なる示談の申し入れを行うも全て応答が得られなかったため、この度東京地裁に提訴することと致しました。
タグ:
posted at 13:00:56
>日本人である私が責められるのは当然の事
海洋放出の是非とは独立に、これを「当然」としてはならない。
この理屈を敷衍すれば、9・11テロでアフガン民衆が責められることも正当化されてしまう。
集団制裁・連帯責任という概念はクソ twitter.com/sashatax/statu...
タグ:
posted at 13:21:15
非公開
タグ:
posted at xx:xx:xx
何の変哲もないA4用紙で段ボール・アクリル板・プラスチック・木片を切断する「ペーパーカッター」の作り方(2017)
gigazine.net/news/20170415-...
タグ:
posted at 13:30:08
左巻健男の日本共産党への見方:
しんぶん赤旗紙からエッセイの連載依頼をされたとき、共産党がニセ科学にやられないようにと、「ニセ科学の正体」を書いた。
それは共産党の出版社の新日本出版社の目にとまったようで、ニセ科学批判の本を書くことを依頼された。
(続く)
タグ:
posted at 13:47:34
書いたのが『ニセ科学を見抜くセンス』。4刷、5刷…と重版し、しんぶん赤旗に「好評重版!」の広告が載った。
ところが板橋ホタル館・ニセ科学ナノ銀除染事件に対して、共産党に要望書を公開したら広告が載らなくなり、共産党事務所から本が引き上げられ、もう重版しないと言われた。(続く)
タグ:
posted at 13:51:22
要望書に関して共産党中央委・都委と話をしたが平行線。ぼくは「共産党は腐っていると思う」と述べた。今もその思いは変わらない。
ニセ科学のナノ銀除染万歳の小沢一郎氏側近の平野貞夫氏の本は赤旗に広告が載る。可笑しな内容を含む雑誌の広告は載る。しかし、ぼくの本は載らない。(続く)
タグ:
posted at 13:57:13
もし共産党が政権を取ったらどんな社会になるのだろうか?と思ってしまう。
『ニセ科学を見抜くセンス』は健康系ニセ科学をメインに『暮らしのなかのニセ科学』平凡社新書にした。さらに『学校に入り込むニセ科学』も出した。
(続く)
タグ:
posted at 14:00:54
Prof. A Tomiya consu @AkioTomiya
Now LatticeQCD.jl supports general number of flavors for staggered fermions with general Nc.
Visit: github.com/akio-tomiya/La...
タグ:
posted at 14:04:49
富谷(助教);監修 シン仮面ライダー @TomiyaAkio
Juliaで書かれた格子QCDのコード LatticeQCD.jl でRHMC がサポートされました。任意のNf(=1-8), Nc(≧2)での格子計算計算ができるようになりました。
github.com/akio-tomiya/La... ここから試せます!
#Julia言語
タグ: Julia言語
posted at 14:07:44
一応しんぶん赤旗本紙を読んでいる。時々ぼくにとっては可笑しげな記事が出る。とくに食と健康についてはいつも怪しげだ。共産の議員だけではなく立憲や社民などにも似たような考えの可笑しげ議員らがいる。
そしてカルト・オカルト・ニセ科学政権。それに対抗する野党もぶざまだ。
(以上)
タグ:
posted at 14:09:20
要するにカーネル内でメモリ確保に失敗した時はいついかなる時であってもENOMEMを呼び出し元になんらかの方法でプロパゲーションしてやらねばならず、停止するなどもってのほかなわけです。メモリの確保・開放という処理を隠蔽してしまう便利な言語はカーネルの記述に向かんということですな。
タグ:
posted at 16:56:04
#Julia言語 Pluto.jl
gist.github.com/genkuroki/aacb...
パラメータ g, l を微小に摂動したときの挙動も DifferentialEquations.jl で計算できる。
ただし、これを使うには上で説明した手続きに加えて
pkg> add MonteCarloMeasurements
が必要。NASAでもこの方法を使っている。 pic.twitter.com/6uzrG6wtfM
タグ: Julia言語
posted at 17:03:22
#Julia言語
Juliaも定数を書き変えられる。
警告は出る。
ただし定数(const)の具体型は変更できない。値は変えられる。
Juliaでのconstは具体型を変更できないグローバル変数のようなもの。
具体型が変更不可能ならコンパイルでの型安定性に害を与えない。 twitter.com/miura1729/stat...
タグ: Julia言語
posted at 17:22:29
(メモ)Windows10+Google Meetの講義でパワーポイント画面を共有すると音声が配信されない。
この問題は、ステレオミキサーを有効化すれば解消する。
タグ:
posted at 17:37:22
非公開
タグ:
posted at xx:xx:xx
modern fortran, c, c++, python, juliaのどれでもいいから初心者から脱却したいが、どれかをやってるとどれかを忘れる。運動不足で脳内血流不足なのか。
タグ:
posted at 22:56:58
VSCodeに初めてLaTeX Workshopを導入したときに、「どうやってlatexコマンドを動かせんの?」となったけど、公式ドキュメントを見ると、レシピの書き方もちゃんと書いてあった。だけど、magic commentsの実装から、直にコマンドとオプションを与えてもOKだったから、Dockerでビルドもすぐにいけた。
タグ:
posted at 23:08:14
Emacs+YaTeX+Helm+自前拡張を手放して、VSCode+なにかに移行できるようになったら、記事にまとめようか☃
現状、VSCode+LaTeX Workshop+自前拡張で満足できていないから、満足できるようにしてみたい気持ちはある。
タグ:
posted at 23:18:22