黒木玄 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 を見て下さい。
2020年09月05日(土)
JuliaのREPL中でinlcude()したコードの構造体のフィールドを変更した後に再実行するとinvalid redefinitionになってしまうが、コンパイルしたキャッシュは残しつつコード書きたいときはどうすればいいんだろう?
タグ:
posted at 00:00:34
#Julia言語
試行錯誤的に仕様を変更する可能性のあるstructの定義は、moduleの中で行い、structの定義の変更はmodule全体の上書きによって行う。
私は使い捨てのmodule名としてMyをよく使っています。 twitter.com/genkuroki/stat...
タグ: Julia言語
posted at 00:13:57
#Julia言語
module My
struct Person
name::String
end
~
end
を
module My
struct Person
name::String
age::Int
end
~
end
で上書きすれば、My.Personの定義を変更できます。この方法であれば何でも変更できる。
小パッケージ作成に繋がる書き方をすると色々お得だと思います。 twitter.com/soh__i/status/...
タグ: Julia言語
posted at 00:33:20
@Cacarico73 My experience was that Julia is a mix of mostly Matlab, Python and others but designed in it's own nice flavor. Here is a nice breakdown of how Julia syntax differs from other languages: docs.julialang.org/en/v1/manual/n...
タグ:
posted at 00:36:24
#Julia言語 Jupyter notebook上の
using Plots
pyplot()
でプロットが重複して表示されることがあるという問題は、
PyPlot.display_figs()を上書きすれば解決する。
nbviewer.jupyter.org/gist/genkuroki... twitter.com/genkuroki/stat...
タグ: Julia言語
posted at 01:14:30
#Julia言語 Jupyter notebook 上の
using Plots
pyplot() # もしくは pyplot(fmt=:svg)
でプロットが重複して表示されてしまうことがあるという問題は
PyPlot.display_figs() = PyPlot.close_figs()
の一行で解決する.
nbviewer.jupyter.org/gist/genkuroki... pic.twitter.com/GSRV2Nb9bN
タグ: Julia言語
posted at 01:29:00
Hideki Kawahara: WAS @hidekikawahara
前回の失敗で学習したので、こちらを確認。電子版があった。AmazonでKindle版が無くても、出版元に行くと、e-bookやPDFがあることがある。
O'Reilly Japan - Juliaプログラミングクックブック www.oreilly.co.jp//books/9784873... @oreilly_japanより
タグ:
posted at 01:39:19
#Julia言語 上書きという破壊的な方法を使いたくなければ
using Plots
pyplot() # もしくは pyplot(fmt=:svg)
IJulia.pop_postexecute_hook(PyPlot.display_figs)
IJulia.push_postexecute_hook(PyPlot.close_figs)
で(savefigなどによる)プロットの重複を防げます。
nbviewer.jupyter.org/gist/genkuroki... pic.twitter.com/IkIf0B0qzn
タグ: Julia言語
posted at 01:57:52
以下のリンク先は #Go言語 に限らず、 #Julia言語 などで「配列を使った計算をやらせたら、ガベージコレクションが大量発生して遅くなって困った」という経験をした人なら、みんな共感しそうな話が書いてあった。
メモリアロケーションに対する罪悪感 - kawasin73のブログ kawasin73.hatenablog.com/entry/2019/11/...
posted at 02:20:02
#Julia言語
1 == 1 & 2 == 2 のパース結果の可視化。
Juliaの構文解析は結構おもろいです。
可視化の仕方については次のリンク先を参照↓
nbviewer.jupyter.org/gist/genkuroki... pic.twitter.com/PT5kGCrrEX
タグ: Julia言語
posted at 03:58:08
#Julia言語
a ? b : c
if a b else c end
for a in b c ; d; e end
のパースの結果の可視化。
可視化の仕方については次のリンク先を参照↓
nbviewer.jupyter.org/gist/genkuroki... pic.twitter.com/a9trkHqpYF
タグ: Julia言語
posted at 03:59:43
#Julia言語
f(x; a=2) = sin(a*x)
f(args...; kwargs...) = g(args...; kwargs...)
のパースの結果の可視化。
可視化の仕方については次のリンク先を参照↓
nbviewer.jupyter.org/gist/genkuroki... pic.twitter.com/uKrXeSb6DE
タグ: Julia言語
posted at 04:01:10
#Julia言語
head :vect を head :row に書き変えるマクロの例↓
twitter.com/genkuroki/stat...
タグ: Julia言語
posted at 04:06:13
#Julia言語 1つ前のツイートの処方箋に気付けたのも、すべてごまふあざらしさんのおかげです。
PyPlot.jlの仕組みを理解したい人は以下のリンク先のリンク先を見るのが最短コースだと思う。
ナマのPyPlot.jlのソースコードを見るのはいきなりジャングルに迷い込む感じ。
twitter.com/MathSorcerer/s...
タグ: Julia言語
posted at 04:22:09
#Julia言語
添付画像の可視化は AbstractTrees.jl によるもの。
AbstractTrees.jl は非常によい! twitter.com/genkuroki/stat... pic.twitter.com/dj6C549T1P
タグ: Julia言語
posted at 04:32:02
@sotrud_nik @JuliaLanguage R6 classes? No, there is no reason to add object orientation to Julia. Structs, types and multiple dispatch make all the work done.
タグ:
posted at 04:42:41
#Julia言語 の行列の書き方がMATLABに近いというのは事実ですが、「OOPが無い」はデマ扱いして問題ないと思う。このデマ、誰が広めているんですかね?
multiple dispatchにおける
* abstract typesとcomposite typesのツリーとmoduleの組み合わせ
* Holy traits
で大抵のことはできる。 twitter.com/dst0m/status/1...
タグ: Julia言語
posted at 05:57:48
#Julia言語
Holy traitは、型に値を持つ函数を用意しておいて、その函数の値の型でdispatchするという方法もことです。
Julia言語で書かれた諸々のもの達で広く利用されている。 twitter.com/genkuroki/stat...
タグ: Julia言語
posted at 06:07:29
A word of warning with #JuliaLang's broadcast: write x .+ (1 + 2 + 3) instead of @. x + 1 + 2 + 3. The latter makes a much more complicated intermediate object which can potentially break type inference or miss out on special broadcast overloads. (Just spent hours debugging...)
タグ: JuliaLang
posted at 06:26:07
julia> @. (1:5) + 1 + 2
5-element Array{Int64,1}:
4
5
6
7
8
julia> (1:5) .+ 3
4:8
タグ:
posted at 06:26:08
黄昏あるぱかꅷ-R-XXX-24 @twilightalpaca
juliaのHTTP.jiでserveしてるとCtrl+Cで落ちなくてこまるまん(最終的にSEGVで死ぬけど
タグ:
posted at 07:17:49
Pythonとかのオブジェクト指向って「モノが動く」感じで、Juliaの多重ディスパッチって「モノを動かす」感じ。基本的に両者は同じことができる。一人称シューティングと戦略シミュレーションみたいな違いか
タグ:
posted at 07:23:18
#Julia言語 でprintfデバッグみたいなのじゃないデバッグメッセージどうやって出すのかと思って調べました。もう @ info とか @ warn ですぐ出せるLoggingが標準装備でした。便利〜 docs.julialang.org/en/v1/stdlib/L...
タグ: Julia言語
posted at 08:50:23
Julia set
f(z) = z ^2 + C
C = -0.76 + 0.06i
こういう感じが好き
#切り絵 pic.twitter.com/lRopTGuoha
タグ: 切り絵
posted at 09:03:37
@Cacarico73 @KelMarkert Just found a nice series of Julia for Geospatial by @map_andrew
www.acgeospatial.co.uk/tag/julia/
and JuliaGeo github.com/JuliaGeo
タグ:
posted at 09:30:15
Want to use #Google #EarthEngine cloud-based geoprocessing with #julialang? Check out examples on how this can be done!
link.medium.com/wLRKgFSgw9
タグ: EarthEngine Google julialang
posted at 09:37:38
@Cacarico73 @KelMarkert @map_andrew This MIT course by @3blue1brown is really good! After watching the first two lectures, I am sold. I am coming for #julialang 😄
mitmath.github.io/18S191/Fall20/...
タグ: julialang
posted at 09:42:56
@giswqs @Cacarico73 @map_andrew @3blue1brown Let's make #julialang in #remotesensing/#hydrology/#EO mainstream! After working with it recently, I am sold on it too
posted at 09:54:14
@temmusu_n @OokuboTact
国立教育政策研究所教育図書館所蔵戦後教育資料デジタルアーカイブの公開について
www.nier.go.jp/03_laboratory/...
タグ:
posted at 10:58:32
こりゃいい。
Matrix Product Stateによる量子期待値計算をJuliaでやってみる qiita.com/ryuNagai/items... #Qiita
タグ: Qiita
posted at 11:42:00
最近も乳児の咳き込みで
『タバコ吸う人はいますか?』
『いません。でも父親帰ってきて抱っこすると咳き込みがひどいんですよね』
『お父さんはタバコ吸ってないんですか』
『はい』
『アイコスは?』
『アイコスは吸ってますよ』
『それタバコですけど』
『え?アイコスですけど』
ってやりとりした twitter.com/kalgoorliebeth...
タグ:
posted at 12:07:31
#Julia言語
multiple dispatch については以下のリンク先のスレッドも参照。
合理性を重要視する立場からは、「JuliaにはOOPがないから引っ越せない」という類の発言は非常にまずい。
これから普及すると思われる優れた考え方と実践については理解しておいた方がお得。 twitter.com/arikatz20/stat...
タグ: Julia言語
posted at 12:17:12
#Julia言語 既出ですが、multiple dispatchについては
www.juliaopt.org/meetings/santi...
を参照。これはPDFなので短時間で目を通せます。
タグ: Julia言語
posted at 12:19:51
加熱式タバコで禁煙できたと思う喫煙者は多いです。IQOSのヒートスティックもgloのネオスティックも葉タバコを詰め込んだものと説明しています。お子さんのいる方は卒煙を。 twitter.com/io302/status/1...
タグ:
posted at 12:44:39
@takusansu @OokuboTact TaKuさんは情報早いですね。ありがとうございます。明治教科書のデジタル化もやってますし、教育図書館、記録の蒐集は木田宏あたりから熱心なのですが、最近は公開においてもとても優秀なんですね。関係者の方々に感謝します。
タグ:
posted at 12:51:25
ところがタバコ産業もアイコスだけでなく、多種多様な電子タバコ・加熱タバコマーケットを広げている。
『プルームってやつで』『あ、タバコじゃないんですね』と丸め込まれる医師すらいる。 twitter.com/takiuchi/statu...
タグ:
posted at 12:56:35
この辺は『お薬何か飲まれてますか?』という問診でもよくある事だが、サプリメントや漢方薬は処方されてないから『飲んでません』と答える患者さんは多い。
実はそのサプリメントの影響で症状を起こしている事がある。おくすり手帳だけ見ても判明しない。しかも食事の一種のような扱いすらされている
タグ:
posted at 12:59:25
#Julia言語
github.com/JuliaPhysics/M...
Measurements.jl
を使うと
using Measurements
a = 3 ± 0.2
のようにして、±0.2の不定性を持つような数値を扱えます。
実はこれをそのままこのスレッドで私が定義したシンプルなオイラー法の函数で使用できます!続く
タグ: Julia言語
posted at 14:00:14
#Julia言語 私が書いた常微分方程式の数値解法としてのオイラー法の実装は添付画像1の通りです。実質数行に過ぎない。
添付画像2では、それを使って、初期条件が
1.0 ± 0.2
0.0 ± 0.2
という不定性を持つ場合を数値的に解いています。
これは面白いと思います!続く
nbviewer.jupyter.org/gist/genkuroki... pic.twitter.com/IFspLGGmFP
タグ: Julia言語
posted at 14:04:03
#Julia言語 さらに、不定性を持つ数値として数値的に解かれた結果をプロットしたものが以下の添付画像です。
自動的にエラーバーもプロットされています!
Measurements.jlでPlots.jl用のレシピを定義してくれているので、自動的にこうなります!
これどう?
nbviewer.jupyter.org/gist/genkuroki... pic.twitter.com/ghgnyRbQxX
タグ: Julia言語
posted at 14:06:26
#Julia言語 Measurements.jlは巨大かつ高機能で高速な微分方程式のパッケージであるDifferentialEquations.jlでもそのまま利用できます。
添付画像は
www.youtube.com/watch?v=kc9Hws...
より。この動画は
Juliaのmultiple dispatchが
他人の成果物をどれだけ利用し易くするか
を解説したものです。 pic.twitter.com/9Qk443AbJu
タグ: Julia言語
posted at 14:14:31
#Julia言語
以下のリンク先スレッドでmultiple dispatchの利用の実演。
私が書いた微分方程式の初期値問題に関するオイラー法のシンプルな函数で、1.0±0.2 のような不定性を持つ数値を扱うパッケージ Measurements.jl をそのまま使える。
twitter.com/genkuroki/stat...
タグ: Julia言語
posted at 14:17:23
jupyter/datascience-notebook,PythonとRは動くのにJuliaは動かんのファッキューになっています
しかもエラーすら出ない^^
タグ:
posted at 14:20:32
#Julia言語
Pro tip: to write highly generic code, just leave off all the types!
高度に汎用的なコードを書くためには、型の(直接的な)指定を全て削除すればよい。
これは直接的に型をどうしても書きたくなるような過学習にさらされた人達にとって重要なアドバイス。
www.youtube.com/watch?v=kc9Hws... pic.twitter.com/UpwNgf0kbj
タグ: Julia言語
posted at 14:56:02
りゅうりゅう@VBAer × ココナラP @blacklist_ryu
TLでPythonの情報を良く見るので、前にちょっとかじった程度でやめたけど、ちゃんと学習しようかなぁ。
でもJuliaって言語も気になってるんだよね。
タグ:
posted at 15:01:22
#超算数 さっそく教育図書館の「戦後教育資料」から
教育課程改正準備委員会、調査局調査課長「教科課程改正準備委員会令関係」1946,7年。nierlib.nier.go.jp/lib/database/S...
このうち1946年9月の日付をもつ「小学校教科課程表」の算数科全文。 pic.twitter.com/FA7hDP5xoM
タグ: 超算数
posted at 15:38:15
#julialang でなにかやっていると、名前空間がやっかいなときがあって、Pythonを長いこと使っていた経緯もあってずっと違和を感じでいたけど、そこでusingとimportの違いが重要になってくるわけですね。importだとモジュール名から明示的記述しないと怒られる。勉強になった。
タグ: julialang
posted at 15:38:51
#Julia言語 以上の solve_euler(~)では時間軸を
range(tspan..., step=Δt)
で定義しているせいで、型が(例えば)Float32の引数を与えて、Float32で計算させようとしても、内部の計算でFloat64が使われてしまいます。その点を改善しました。
gist.github.com/genkuroki/a447... pic.twitter.com/wNHk4PWGSq
タグ: Julia言語
posted at 15:46:58
#Julia言語
function f(t::T, u::T)::T where T<:AbstractFloat
~
end
ならばかなりましになります。例えばMesurements.jlのMeasurement型のsupertypeはAbstractFloatなのでこのfで利用可能。
しかし、AbstractFloatではない便利なものが結構あります。例えば自動微分関係の型とか。 pic.twitter.com/BIHNHGFXCd
タグ: Julia言語
posted at 16:06:22
#Julia言語 自分が書いたシンプルなコードで、他人が作ってくれた素晴らしい道具を利用できることは素晴らしいことです。
そのことを理解するにつれて、Julia言語の開発者自身のアドバイスが有益であることが実感できるようになります。
twitter.com/genkuroki/stat...
タグ: Julia言語
posted at 16:11:05
#Julia言語 さらに、初期値として誤差情報を含むMeasurement型のものを与えたとき、数値解のプロットには自動的にエラーバーが追加される。
上の方で実演して見せましたが、実演のスクショを再掲しておきます。 pic.twitter.com/rELGbjpJal
タグ: Julia言語
posted at 16:20:16
#Julia言語 このスレッドで使ったコードはすべて
nbviewer.jupyter.org/gist/genkuroki...
で閲覧できます。ダウンロードして誰でも利用できる。
何も「高級なこと」はしておらず、素朴なEuler法です。Runge-Kuttaにもしていない。
その代わりに計算からプロットまで全部やって見せています。
タグ: Julia言語
posted at 16:40:19
Abdulhakim Abdi, PhD @HakimAbdi
I'm learning #python mainly for its ability in processing gridded time series data faster than my primary tool, #rstats. But lately, I've been seeing a lot of tweets about the fast speed @JuliaLanguage vis-à-vis python. Wondering if #JuliaLang can handle gridded time series data?
posted at 17:16:03
#Julia言語
パッケージ Foo と Bar で名前がかち合う場合には
using Foo: Foo
using Bar: Bar
として、両パッケージのexportを無効にして使うと便利です。
Barパッケージの側のみf, g, hしか使わない場合には
using Foo
using Bar: f, g, h twitter.com/__cheph__/stat...
タグ: Julia言語
posted at 17:51:10
#Julia言語 どのように動かないのか不明ですが、kernel dead の頻発は、Julia外のjupyterを使うときに
julia> ENV["JUPYTER"] = "使用するjupyterのフルパス"
をせずに
pkg> add IJulia
pkg> build IJulia
していることが原因で起こるようです。これに私はハマった。
julialang.github.io/IJulia.jl/stab... twitter.com/inazuma_110/st...
タグ: Julia言語
posted at 18:10:56
#Julia言語
Juliaでは函数にしないとコンパイルされないので、ひどく遅くなります。これを忘れているというパターンが最も多いです。
docs.julialang.org/en/v1/manual/p... twitter.com/aldente39/stat...
タグ: Julia言語
posted at 18:31:58
ごまふあざらし(GomahuAzaras @MathSorcerer
かなりアグレッシブかつわかりやすい
導入ですね
youtu.be/OOjKEgbt8AI
タグ:
posted at 20:01:27
#Julia言語
[[] for _ in 1:N]
という文字列を含む発言がTLを流れて行ったような気がするが、見失った。
Anyの空配列の配列を作るのはまずいです。
Vector{Int}の配列とVector{Any}の配列(長さ10^5)のsumでは後者は前者の10倍近く遅いです。
gist.github.com/genkuroki/5ae6...
twitter.com/genkuroki/stat... pic.twitter.com/P4YgCv5wuW
タグ: Julia言語
posted at 21:29:26
「普段あまり社交的でない19歳青年は、一週間Twitterをやっている間に何人の知り合いの方に登場していただけるのか🤔」 ということで。
1回目は、今日将棋棋士の方々のフットサルに参加させていただいた折に。
首藤瞬先生、将棋棋士の渡辺明先生、瀬川晶司先生にご協力頂きました。 (青木裕孝) pic.twitter.com/PZPgUGQKqW
タグ:
posted at 21:32:35
ごまふあざらし(GomahuAzaras @MathSorcerer
using, import の解説は Discourse やドキュメントにあって,それを読めば,深いことをしないエンドユーザは 基本 using を使うんですよね. twitter.com/genkuroki/stat...
タグ:
posted at 21:34:45
ごまふあざらし(GomahuAzaras @MathSorcerer
#Julia言語
ModelingToolkit.jl で記号を生成,
Zygote.jl で 微分計算,
微分結果の記号に具体的な数値を代入するところまでできました.多分これぐらいのことがわかれば ModelingToolkitのチュートリアル読めます.あとは微分方程式をとくなり好きに進むと良いです.
gist.github.com/terasakisatosh...
タグ: Julia言語
posted at 21:49:45
ごまふあざらし(GomahuAzaras @MathSorcerer
juliadynamics.github.io/JuliaDynamics/
の GeometryOptics の例
コピペで動けました! pic.twitter.com/U5gSNg8y4U
タグ:
posted at 22:03:54
@luk__up @federicocarrone @numba_jit You can do that too using pyjulia 😀
github.com/JuliaPy/pyjulia
タグ:
posted at 22:29:59
@genkuroki ありがとうございます。今回は(たまたま)ほぼほぼ関数になってて、トップレベルではそれらの呼び出し程度でした。
行列同士の演算でドットが抜けていたために無駄なメモリ操作が多発してたのが原因でした。
タグ:
posted at 22:53:17
#Julia言語
Jupyter (Notebook)からPlutoへ|Shin@Geo @gisp_shin #note note.com/shinkobara/n/n...
posted at 23:42:50