黒木玄 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 を見て下さい。
2018年01月08日(月)
@Remio7 @sekibunnteisuu 【積分定数さんは、私に何を求めているのでしょう】
(積分定数さんが何を求めているか、とは別に)私は、「教師が揶揄されつづけますよ」という事をお伝えしたいです。 #掛算
タグ: 掛算
posted at 00:06:52
#Julia言語 #Atom #LaTeX
私もAtomでLaTeXを入力しています。
Atom + SumatraPDF viewer の組み合わせは結構便利。
SumatraPDF で自分で書いたLaTeXファイルのPDFを閲覧して、誤りを見付けたらダブルクリックでLaTeXファイルの当該箇所にジャンプしてくれる。
twitter.com/dannchu/status...
posted at 00:18:06
非公開
タグ:
posted at xx:xx:xx
#Julia言語 Python環境ですでにJupyter notebookも使えるようになっているならば、Julia言語もJupyter notebook から使えるようにしておけば、超高級電卓として結構便利に使えると思います。importのおまじない無しに行列などの計算ができる。
twitter.com/terurium_chu/s...
タグ: Julia言語
posted at 00:30:57
#Julia言語 すでに、RのコマンドをJulia言語内から実行したり、Julia言語からR言語にデータを送ったり、逆にR言語で計算した結果をJulia言語で取得したりする仕組みはできています。
github.com/JuliaInterop/R...
例えば、Jupyter notebook上のJuliaからRのプロット機能を利用できたりします。
タグ: Julia言語
posted at 00:44:25
非公開
タグ:
posted at xx:xx:xx
@sekibunnteisuu @Remio7 不思議な話です。
【3×2だと、耳が3本生えたウサギが2羽、ということになるよ】
という考え方を、「小学校をとっくに卒業した大人が持ちつづける事が、良いか否か」という質問に答えることが出来ないという、呪縛のような物が存在するのでしょうか? #掛算
タグ: 掛算
posted at 00:46:27
Rは全然覚えられなかったけど、Juliaはだいぶ使えるようになってきた。Rは直感的に使えないのかな。よくわかんないけど。ノートブックのおかげもあるかもしれない
タグ:
posted at 00:47:57
#Julia言語 Julia言語内でRを使う方法については次を参照するといいかも。
JuliaからRを使う - りんごがでている bicycle1885.hatenablog.com/entry/2016/08/...
タグ: Julia言語
posted at 00:52:59
@genkuroki juliaは結構欲張りな言語だからどんどん変わるのでは?賢い仕様?志向だから膨れ上がる事よりもパッケージ化で済む事は外付けに移行してるような気がする。自由度は上がるから連携も楽なのかも。パッケージ導入すれば一々ライブラリで呼ばなくて済む仕様なのやろか?その辺りもまったく分かってない。
タグ:
posted at 01:00:47
チュートリアル着手。
10_000_000 この記法、Elixirと同じだね #Julialang #Julia言語
それにしてもマジで1千万個の浮動小数のソートが1.4秒かよ半端ねえな。
posted at 01:07:21
非公開
タグ:
posted at xx:xx:xx
TeX ではマクロは \ から始まりますが、 #Julia言語 では @ から始まります。私が使っている和をforループに展開するマクロは
gist.github.com/genkuroki/44e6...
色々なsum
で公開されています。便利なマクロを書いた人がいたら、私にも見せて下さい。
タグ: Julia言語
posted at 01:28:48
「糊」の話に追加。 #Julia言語 から優れた数式処理ソフトである Maxima を使うこともできます。もっと緊密に Maxima を Julia 言語内から使えるようになると素晴らしいと思います。
gist.github.com/genkuroki/6d32...
タグ: Julia言語
posted at 01:32:15
非公開
タグ:
posted at xx:xx:xx
”Information Theory, Inference and Learning Algorithms”を読んでいて,なんて読むんだろ?と思っていた Ising Model の読み方が #JuliaLang の話題でわかった.Juliaのコンパイル自体はGNU OctaveやRを自前ビルドしていた関係でさっくりいった.さて,どうしようかな.
タグ: JuliaLang
posted at 02:05:09
versioninfo()でJuliaのバージョンやらPCのスペックを出してくれるのね。#Julia言語 pic.twitter.com/NrIwHyuhW1
タグ: Julia言語
posted at 03:18:31
最新のCPUに最適化された基礎的な数学関数ライブラリ。そんなに早いなら、Juliaのデフォルトにならないかなぁ github.com/JuliaMath/Yepp...
タグ:
posted at 05:24:33
FortranがJuliaより遅かった問題解決した。基本的には、allocateしただけで初期化( y(:) = 0 )してなかったのが問題やった。ただgfortranとifortで挙動が違うのでもう少し複雑。よかった、Juliaより遅いコンパイラ言語は存在しなかったんだね...。
タグ:
posted at 05:54:19
非公開
タグ:
posted at xx:xx:xx
非公開
タグ:
posted at xx:xx:xx
非公開
タグ:
posted at xx:xx:xx
情報処理の授業で2Dイジングへの熱浴法やメトロポリス法の適用を教えるのはマジでよいことかも。
* 十行程度で書ける。
* ベイズ推定で使われるMCMC法の最も簡単な場合である。
* 物理的に意味のある計算でプロットすると楽しい
* 大量の繰り返し計算が必要な典型例である
twitter.com/suokubo/status...
タグ:
posted at 10:17:46
情報処理の授業には使用頻度の高い有用かつ有名なアルゴリズムの解説が含まれるのですが、MCMC法はコンピューターを使わないと実用にならない重要なアルゴリズムで価値が高い。2D Isingを題材に教えればMCMC法の適用の例を10行程度で書けるので教育用の題材に成り得ると思います。
タグ:
posted at 10:24:43
#Julia言語 で書いた例は
nbviewer.jupyter.org/gist/genkuroki...
にあります。
In [2]のising2d_update!とising2d_sweep!がそれぞれ2dイジングのメトロポリス法の函数です。2つ函数を書いた。どちらも10行程度。
他のプログラミング言語でも短く書けます。
プロットするためのコードの方が圧倒的に長い。
タグ: Julia言語
posted at 10:36:37
#Julia言語 #Ising なるほど、mod1使わずにifelseで周囲のスピンの和を取らないとダメなのか!私も100×100の盤面全体の10000万回の更新が1秒程度になりました。100×100の100万回更新なら100秒程度。
最初のバージョンでは1500秒ほどだったので15倍高速化した!
twitter.com/cometscome_phy...
posted at 11:38:38
@cometscome_phys たぶんそうです。
円周率のモンテカルロ法による高速計算でも乱数発生の高速化が非常に重要でした。メルセンヌツイスターやその後継の重要さがよくわかります。
#Julia言語
タグ: Julia言語
posted at 12:02:12
#Julia言語 訂正:15倍ではなく12倍高速化
ソースコードの公開更新:
gist.github.com/genkuroki/0578...
は更新されました。しかし表示が重い。
nbviewer.jupyter.org/gist/genkuroki...
はまだ更新されていない。じきに更新されると思います。
タグ: Julia言語
posted at 12:05:13
非公開
タグ:
posted at xx:xx:xx
非公開
タグ:
posted at xx:xx:xx
非公開
タグ:
posted at xx:xx:xx
2次元イジングのMCを速くするのが流行ってるので、とりあえず境界条件の処理にifもmodも使わないやりかたに変更したら、100×100を臨界点で100万MCSが140秒まで縮みました。1.3GHzのMacbook Airです。ただ、5倍速くはなったものの、プログラムが長いのが嫌
タグ:
posted at 13:14:16
非公開
タグ:
posted at xx:xx:xx
Juliaのifelse文、if文より速いのは間違いないけど、trueとfalseの両方を評価してるらしく、ifelse(a==1,s[10],s[a-1])
みたいなものでa=1が来ると配列s[0]は無いよと怒られる。
タグ:
posted at 13:15:15
@kaor1324 @togetter_jp いきなりで失礼します。
【じゃなぜいけないのか】
#掛算 の順序にこだわる側の言い分は、このような物です。
参考: www.asahi.com/edu/student/te...
(私は、「順序どうでも良い」派です。)
タグ: 掛算
posted at 13:23:10
非公開
タグ:
posted at xx:xx:xx
非公開
タグ:
posted at xx:xx:xx
非公開
タグ:
posted at xx:xx:xx
@cometscome_phys 3項演算子 ... ? ... : ... は試されましたか? if 文と違ってこちらは simd 効いた気がします。うろ覚えですが。 (あと、重箱ですが ifelse は文ではなくて関数では?
タグ:
posted at 13:31:32
#Julia言語 をJupyterで使っていると
1+2
+3+4
の結果は
7
となり、
1+2+
3+4
の結果は
10
になる。改行直線に2項演算子があると次の行も見に行ってくれる。
f(x) = if x < 0; -x else x end
f(-2.5)
の結果は
2.5
一ヶ所だけセミコロンが必要。
gist.github.com/genkuroki/6088...
タグ: Julia言語
posted at 13:42:22
#Julia言語 続き
f(x) = if x ≥ 0 x else -x end
f(2.5) → 2.5
f(-2.5) → 2.5
この場合には 0 と x のあいだのセミコロンがいらない。
f(x) = x ≥ 0 ? x : -x
と上は等価。私には英語でifと書いてあった方が見易いように感じられるが、そうでない人も多いだろう。
gist.github.com/genkuroki/6088...
タグ: Julia言語
posted at 13:45:39
#Julia言語 私は今でもよくやってしまう。
ifelse(false, 1, hoge)
とか書くと hoge が定義されていないと怒られる。ifelse(a,b,c) は函数で a, b, c を計算してから ifelse(a,b,c) を計算する。a, b, c のすべてが計算可能じゃないとエラーが出る。
twitter.com/cometscome_phy...
タグ: Julia言語
posted at 13:55:14
@cometscome_phys すいません、ググっても3項演算子とパフォーマンスに関する情報でてこないし、3項演算子は short-circuit するので速くはならない気がしてきました。
タグ:
posted at 13:57:24
#Julia言語 おお! Pythonの側からJuliaを呼び出せている!
(Juliaの側からPythonを呼び出す方はずっと簡単)
PythonからJuliaを呼び出したいんだ on @Qiita qiita.com/SatoshiTerasak...
タグ: Julia言語
posted at 14:44:08
はてなブログに投稿しました
JuliaBox は相変わらず Sorry, an unexpected error occured. Please try after some time. なので仕方なくANACONDA で Jupiter Notebook で Julia 0.6.2 を試してみるなど - Amaryllis@hatena satie.hateblo.jp/entry/2018/01/... #はてなブログ
タグ: はてなブログ
posted at 14:52:50
#Julia言語 #Ising
1000億点の更新をやってみました。
そのうちから100の状態を取り出してGIF動画を作成するまで全部合わせて15分30秒でした。
Gistで公開しているソースファイルを現在更新中。しばらくすれば更新されると思います。
nbviewer.jupyter.org/gist/genkuroki... pic.twitter.com/FQQkkWIOi9
posted at 14:57:39
#Julia言語 #Ising 訂正「10^6個のうち10ごとに」→「10^7のうち100ごとに」
絶対温度は 1.01 T_crit です。添付画像はμのグラフ。100億点更新だと左右対称にならず、仕方がないので1000億点更新にしました。15分で1000億点更新できるので、1兆点でも150分(2時間半)で可能ですね。 pic.twitter.com/Nfgu4TeBYS
posted at 15:08:51
@bicycle1885 色々試してみたら Python/Numpy が遅い理由の半分くらいは要素へのアクセス (Julia でいう getindex) みたいなので、 「(Python/Numpy に比べて) Julia の for はなぜ速いか」だと、 getindex がインライン化出来る、も入っている気がします。 twitter.com/tkf/status/949...
タグ:
posted at 15:09:56
#Julia言語 #Ising GIF動画 pic.twitter.com/Eq31LnRR6v
posted at 15:11:16
@bicycle1885 Array{Any} でも getindex は (原理的には) インライン化出来ませんか? 配列 *要素* の型が決まるかどうかと配列の型が決まるかは別問題だと思うのですが。
タグ:
posted at 15:30:25
そういえば,Juliaのステッカー欲しいって人いますか? たくさん持ってるのですが,欲しい人がいれば3枚300円くらい(送料・手数料込み)でメルカリとかで売ろうかと思ってます。このツイートをLikeしてくれる人が割りといたら真面目に考えます。
タグ:
posted at 16:00:17
@bicycle1885 ああ、すいません元の Python の記事が頭に残ってたので要素の型の推論だけを考えてましたが、 bicycle1885 さんの記事はそういう書き方では無いですね。重箱の隅すぎました。
タグ:
posted at 16:06:27
@cometscome_phys JULIAってデフォで並列サポートしてるんだ。"JULIA -P n" SPAWNとかREMOTE CALLとかASYNCとか。この辺は並列かじってないと使いこなすの難しいかも。
タグ:
posted at 16:10:08
@tkfさんに教えて教えて頂いた--check-bounds=noオプションでさらに速くなった #julia言語 twitter.com/tkf/status/948...
タグ: julia言語
posted at 16:14:27
イマジンアドミニストレーター@妄想管理者 @imaginster
macでも、同じように
ENV["PYTHON"]="~/python"で出来ました(*´∇`*)b
~の部分は、which pythonのpythonまでのディレクトリで出来ました。
情報提供、ありがとうございます。 twitter.com/genkuroki/stat...
タグ:
posted at 16:21:38
@y__hiroyuki はじめまして、大学で熱力学を教えています佐々と申します。添付されていた教科書の演習問題の解答というか、問題の補足を書きました。専門家的には、特異な熱伝導状態において局所平衡状態を決定する問題になっている(と解釈しました)。 pic.twitter.com/sAwyoxKEZ1
タグ:
posted at 16:28:33
はてなブログに投稿しました
Julia にどんなPackageを取り込んだ?か備忘録 - Amaryllis@hatena satie.hateblo.jp/entry/2018/01/... #はてなブログ
タグ: はてなブログ
posted at 16:54:28
@tkf inboundsマクロというのもあるのね。#Julia言語
docs.julialang.org/en/latest/devd... pic.twitter.com/S4PwV7286C
タグ: Julia言語
posted at 16:58:20
adhara_mathphys @adhara_mathphys
二次元イジング模型シミュレーション、この一週間どんどん高速化していますね。その様子が分かるのが面白いです。
タグ:
posted at 17:09:22
#Julia言語 rand(1:m)は1からmまでの64bit整数をランダムに生成し、 rand(UnitRange{Int32}(1:m))は1からmまでの32bit整数をランダムに生成します。それらの生成速度が違うのだ。詳しくは
juliasnippets.blogspot.jp/2017/11/basics...
を参照。この変更で速くなったということはやはり乱数が原因で遅くなっている。
タグ: Julia言語
posted at 17:11:54
イジングモデル(特に3次元)のシミュレーションについては、博士課程在籍当時に世界で一番速いプログラムを書いてたのは菊池・岡部チーム。その後、伊藤伸泰に抜かれますが。伊藤と議論したら、必要な最少オペレーション数は同じだったので、本質的に同じ。その後、彼はアセンブラレベルで最適化を
タグ:
posted at 17:19:45
@pegion_HOLE ありがとうございます!!これはめちゃくちゃ便利ですね。全然知りませんでした(そもそもJupyter Notebookで実行できることも知らなかった) 本当に感謝です🙇🙇🙇
タグ:
posted at 18:15:25
@wnk_datasci Macの場合、
brew install julia
だとver0.5が入るので注意が必要です。
brew cask install julia
だとver0.6が入ります。インストール後は
Pkg.update()
Pkg.add("IJulia")
でJupyterから使えるようになります。Pythonで使えるものはだいたい使えるので、検索すると出てくると思います。
タグ:
posted at 18:21:13
@pegion_HOLE うわぁ、ご丁寧に教えて下さりありがとうございます!教えていただかなかったら、確実にトラップにはまっていたと思います。早速やってみます。本当にありがとうございます!!!!🙇🙇🙇
タグ:
posted at 18:27:11
#Julia言語
gist.github.com/genkuroki/b629...
64bit整数の乱数生成は32bit整数の乱数生成より遅い
16.6ms → rand(1:100, 10^6)
12.8ms → Int.(rand(UnitRange{Int32}(1:100), 10^6))
前者は64bitで後者は32bitで乱数生成。これらの結果は完全に同じになる。
タグ: Julia言語
posted at 18:34:00
Julia、周期境界条件の計算のときにifelse関数とmod1と三項演算子「a?b:c」の三種類を試してみたけど、ifelseが最速、次が三項演算子、これらより数倍以上遅いmod1という結果になった。
タグ:
posted at 19:04:35
非公開
タグ:
posted at xx:xx:xx
ゆみや (mstdn.maud.ioにも @stepney141
AtCoderってJulia使えたっけ
JuliaのQA on @Qiita qiita.com/bicycle1885/it...
タグ:
posted at 19:19:55
#JuliaLang
juliasnippets.blogspot.com/2017/10/pydata...
【loops in Julia are fastest】(faster than vectorized Julia code)
【vectorized Julia code is faster than Numba】
【NumPy implementation is around three times slower than vectorized Julia】
loops in Julia > vectorized Julia code > Numba > NumPy
タグ: JuliaLang
posted at 19:25:24
@wnk_datasci ツイッター上には詳しい方(@bicycle1885 )がおられるので、その方のブログ(bicycle1885.hatenablog.com)も参考にすると捗ると思います。
それでは良いJulia Lifeを・・・!
タグ:
posted at 19:28:21
@genkuroki なるほどメルセンヌツイスタが改良されてるだけか。もう大抵の言語の擬似乱数がメルセンヌツイスタなんだな。それはそれでまた問題がありそうな、、、
タグ:
posted at 19:48:38
2D numpy.arrayをifループx2で巡回しててクソ遅かった2Dイジング模型のモンテカルロ法計算にnumba.jitつけたら200倍速くなって引いた
タグ:
posted at 19:58:15
import numbaしてこれのmcmoveとcalcEnergyにnumba.jitつけただけ rajeshrinet.github.io/blog/2014/isin...
タグ:
posted at 19:59:54
@cometscome_phys @genkuroki ifelseと三項では同じことをしているのかと思ったのに違うのですね。mod1のほうは、%を使って自分でmod1相当の演算を書いたほうが速かったので、いろいろ処理をしているのでしょう
タグ:
posted at 20:04:03
Juliaで学ぶ古典モンテカルロシミュレーション、04はおまけとしてJuliaでの書き方による速度の違いを調べてみた。ifelseとmod1と三項演算子の比較とか。計算は全部Julia Boxを利用 #Julia言語 github.com/cometscome/MC/...
タグ: Julia言語
posted at 20:08:33
#Julia言語 では
begin
s=0
for i in 1:n
s+=f(n)
end
s
end
の並列化を
@ parallel (+) for i in 1:n; f(n); end
で可能。@ の後の空白は除く。@ から始まるのはマクロ。Juliaが流行れば並列処理を初心者でもできるマクロを書いてくれる人が出て来そう。
twitter.com/hiropon_matsu/...
タグ: Julia言語
posted at 20:09:58
1件のコメント b.hatena.ne.jp/entry/s/qiita.... “Juliaの速さを体感する - Qiita” htn.to/AR4gjM
タグ:
posted at 20:16:41
#Julia言語 「Numbaに速さ的に好印象を持っている」と書いたのですが、知らなかった人が実際にやってみるとびっくりすると思う。NumbaはJuliaとほぼ同じ仕組みで高速化を実現しているはずです。R版のNumbaがあると幸せになれる人が増えると思う。
twitter.com/ktrst/status/9...
タグ: Julia言語
posted at 20:30:59
Juliaboxで走らせたら、100×100の2次元イジング、臨界点で100万MCSが115秒でした。Macbook Airより2割ほど速いだけかな。境界条件の処理のせいでプログラム的には美しくありません
タグ:
posted at 20:31:48
スタンフォードからJuliaを使った最適化アルゴリズムの教科書が出るらしい。それでレビューをする人を探しているみたい。discourse.julialang.org/t/ann-algorith...
ToCを見る限り500ページ近い本気の本だ: alg4opt.net/contents.pdf
タグ:
posted at 20:49:15
非公開
タグ:
posted at xx:xx:xx
非公開
タグ:
posted at xx:xx:xx
おいおいそんなこと言わないでくださいよ。今日JuliaでTensorFlow.jlを動かすためにGTX-1060_6GBを買ってきたばがりなんですよ~! twitter.com/sei06k14/statu...
タグ:
posted at 21:04:02
非公開
タグ:
posted at xx:xx:xx
非公開
タグ:
posted at xx:xx:xx
非公開
タグ:
posted at xx:xx:xx
非公開
タグ:
posted at xx:xx:xx
#Julia言語
docs.julialang.org/en/stable/manu...
にしたがって
@ fastmath @ inbounds @ simd
をforループの前につけてみた。ほんのちょっとだけ速くなったような気がする。@ の後の空白は除く。@ から始まるのはマクロ。Julia言語には色々なマクロが最初から定義されている。
タグ: Julia言語
posted at 21:32:43
非公開
タグ:
posted at xx:xx:xx
【ぼそ】すくなくともわたしの大規模計算のお遊び環境は、もう Julia 一択になりつつある。Pascal 系 GPU 必死で贖いととのえたんだが、ちょっと後悔
タグ:
posted at 21:43:41
自己解決しました。allocateの後に、配列を0で初期化すれば速くなりました。ローレンツ方程式ではありませんが、こちらに書いています。twitter.com/ceptree/status...
タグ:
posted at 22:13:29
#Julia言語 小ネタ
行列の固有値と固有ベクトルを求めたければ
A = [
2 4 -2
-1 -5 4
-1 -7 6
]
D, P = eig(A)
とすればよい。Dに固有値が入り、行列Pの縦ベクトルが固有ベクトル。Pの中身が見難ければ、添付画像の方法で見易くすることができる。 pic.twitter.com/NsUX9PqGQi
タグ: Julia言語
posted at 22:21:10
#Julia言語 でどのような線形代数の函数を最初から使えるかを確認すれば、大学一年で習う線形代数だけでは応用上足りないことがすぐにわかる。(ごめんなさい。)
docs.julialang.org/en/latest/manu...
タグ: Julia言語
posted at 22:25:22
#Julia言語 小ネタ
∫_0^{π/2} log(sin(x))dx
を数値計算するためには
using QuadGK
f(x)=log(sin(x))
val, err = quadgk(f, 0, π/2)
とすればよい。高木貞治『解析概論』p.113によれば答えは
-(π/2)log(2)
である。 pic.twitter.com/4l2ESiyQ5n
タグ: Julia言語
posted at 22:32:23
非公開
タグ:
posted at xx:xx:xx
非公開
タグ:
posted at xx:xx:xx
手計算でexactな値がわかった場合でも、数値計算で検算した方がよいと思う。数値計算もexactな答えがわかっている場合を試すとどれだけ不正確になるかの感じがつかめる。
数値計算できれば手計算の技術は必要ないとか、手計算可能なら数値計算はいらないとか言うのは誤り。
タグ:
posted at 22:34:32
#Julia言語 小ネタ:上の方でわざと普段書かない書き方の
f(n) = (s = 0; for i ∈ 1:n s+=2i-1 end; s)
を紹介したが、これと同じ計算をする函数を
f(n) = sum(2i-1 for i ∈ 1:n)
とも書ける。こちらの方が見易いと思う。∈の代わりに in とした方が打ち込むのは楽。 pic.twitter.com/2UPcKLsmFP
タグ: Julia言語
posted at 22:39:28
非公開
タグ:
posted at xx:xx:xx
Atomのpdfはpdf-viewですが,同じようにジャンプしてくれます。とっても便利です。 #Atom #LaTeX twitter.com/genkuroki/stat...
posted at 22:50:25
editorで1行ずつ実行できるようです。右のサインカーブはeditorで実行したものです。下のコンソールは,macのターミナルでjuliaを使っているのと同じように利用でました。 twitter.com/ceptree/status...
タグ:
posted at 22:54:47
#数楽
大島利雄・小松彦三郎
『1階偏微分方程式』
岩波講座 基礎数学 解析学(II)iii
岩波書店 1977
www.google.co.jp/search?q=%E5%A...
1. 微分幾何からの準備
2. シンプレクティック構造と接触構造
3. 1階偏微分方程式
4. Cauchy-Kovalevskajaの定理
ガチ、数学の本です。
twitter.com/all_for_nuthin...
タグ: 数楽
posted at 23:55:49