タグ

num*に関するsh19910711のブックマーク (54)

  • SymPy で量子プログラミングを体験してみましょう - Qiita

    はじめまして、こんにちは。OpenQLプロジェクト1の中のひと、です。 記事の対象は、次のような方を想定しております。 量子コンピューターや量子プログラミング2に興味がある方 基礎的なPythonの知識がある方 数式に極度のアレルギーのない方 量子コンピューターの仕組みや計算方法をなんとなく知っている方 (記事の前に、@tsujishin さんの「量子情報科学序論 IBM Qを動かして学ぶ量子コンピュータ」を事前に読んで頂くと、より理解が深まると思います) それでは、始めましょう。よろしくお願いします。 数学・科学計算には欠かせない!?「Mathematica」 皆さんは、Mathematica というソフトウェアをご存知でしょうか。 例えば、何か計算式をプログラムで扱おうとしたときに、一般的なプログラムが数値計算を得意としているのに対して、$x$が含まれる関数式のまま扱うことができる

    SymPy で量子プログラミングを体験してみましょう - Qiita
    sh19910711
    sh19910711 2024/06/11
    "sympy: 数学計算に便利な基礎的な利用用途とは別に、様々な応用計算が標準で含まれ / シミュレーション上の理論的な計算では、qapplyまで行えば、目的が達成することが多い / 観測のためのメソッドも備わって" 2017
  • 【Juliaで因果推論】回帰分析 - OLS推定とその仮定

    2つの仮定 E[U]=0, E[U|X]=E[U]が成り立てば,線形回帰モデルY=\beta_0 + \beta_1 X + Uの係数β_1のOLS推定値はXがYに与える(平均的な)因果効果を意味する. 2つの仮定から,Zero conditional mean E[U|X]=0 が成り立つので, CEF: E[Y|X] = \beta_0 + \beta_1 X が母集団で成り立つ. 仮定に基づき線形回帰モデルをモーメント法による推定をすると,結果として最小二乗誤差を最小化するような(OLS)係数パラメータの推定値が得られる. 回帰分析は,他の変数を一定に(コントロール)して推定し,2つの変数間の因果関係を見出す最も代表的な方法の1つです.しかし,推定した結果が因果効果であると信用に値するものとなるためには,ある条件(仮定)が満たされていることが必要となります.仮に仮定が満たされていなけ

    【Juliaで因果推論】回帰分析 - OLS推定とその仮定
    sh19910711
    sh19910711 2024/06/09
    "回帰分析: 推定した結果が因果効果であると信用に値するものとなるためには,ある条件(仮定)が満たされていることが必要 / 因果推論を目的とする回帰分析では,この仮定を理解 ~ " 2022
  • 数値計算初心者にPythonよりJuliaをお勧めする理由 | Tomoaki Yamada

    Juliaの長所 math.fabs(x)よりabs(x)の方がわかりやすい。 絶対値を計算する方法。前者はPythonで後者はJulia。 MATLAB経験者であれば、Juliaの方がより似ているので移行がしやすい。 ループが1から始まる。 計算速度が早い。 ただし、適当に書いて勝手に早くなるわけではない。 計算速度がきちんと高速になる書き方を身につける(=Juliaの仕組みを知る)必要がある。 Pythonの強み 数値計算分野以外の汎用性は圧倒的にPythonJuliaWebデザインとか(おそらく)しない。 そのため、研究者志望以外の学生に教えるならJuliaよりPython。 あるいはお手軽さ重視でR。 ゼミ生が就職活動で「Rを使ったことがあるか」を聞かれたらしい。 機械学習をするなら現時点ではPythonのほうが充実している。 ひょっとしたら、今後はJuliaのスピードが活か

    数値計算初心者にPythonよりJuliaをお勧めする理由 | Tomoaki Yamada
    sh19910711
    sh19910711 2024/06/06
    "MATLAB経験者であれば、Juliaの方がより似ているので移行がしやすい / 計算速度が早い + ただし、適当に書いて勝手に早くなるわけではない / 高速になる書き方を身につける(=Juliaの仕組みを知る)必要がある"
  • Raspberry PiのGPUで数値計算: (2)QPUの特徴 - Qiita

    http://qiita.com/Terminus-IMRC/items/7406fa835d6510790406 の続きです. QPUコア 前回説明した通り,QPUはVideoCore IV内に存在するプロセッサです./boot/config.txtで指定されたgpu_freqの周波数で動きます.デフォルトではRaspberry Pi 1,2では250MHz,Raspberry Pi 3では400MHzです.QPUは物理的に3*4=12基あり,その中に物理的に4コアあり,それぞれのコアが4クロックで4コアをエミュレートします.すなわち,QPU全体をみるとgpu_freq/4=62.5または100MHzで動作する仮想的なコアが12*4*4=192個存在することになります.後述の通り,ALUが1命令で32ビットの加算と乗算を同時に行えるので,192*2*62.5=24000または192*2*

    Raspberry PiのGPUで数値計算: (2)QPUの特徴 - Qiita
    sh19910711
    sh19910711 2024/06/06
    "QPU: /boot/config.txtで指定されたgpu_freqの周波数で動き + デフォルトではRaspberry Pi 1,2では250MHz,Raspberry Pi 3では400MHz / 物理的に3*4=12基あり,その中に物理的に4コア" 2016
  • JuliaHub を使って複数ノードのDistributed Computingを試す

    日は JuliaHub を用いて分散コンピューティング(Distributed computing) を試すお話です. JuliaHubの入門はここにも書きました この記事ではみんな大好き「乱数を用いた円周率の計算」を複数のコンピュータを用いて並列計算させます. 大学や研究機関など特別な機関に所属していないような普通の人間でも(お金さえ払えば)できてしまうのです. この記事を書いている中の人は「自腹で4台のラズパイを買って, LANケーブル繋いでMPIによって並列計算をPythonでおこなった」程度の経験しかないよくある一般人です. それよりも多いノードを使ったスパコンシステムを使うのは JuliaHub が初めてになります. この記事を読んだ方で普段スパコンを触っている方がいれば是非 JuliaHub を使って既存のシステムとの比較・所感を書いていただけると幸せになる人がいると思います

    JuliaHub を使って複数ノードのDistributed Computingを試す
    sh19910711
    sh19910711 2024/06/06
    "乱数を用いた円周率の計算: 複数台のマシンで独立に計算させることができるので分散コンピューティングの練習にはちょうど良い / JuliaHub: ボタン一つであたかも複数台のPCを用意した環境を作成" 2022
  • 記号のみを使った Julia プログラミングをしたかった - Moriturus te saluto

    punctuations のみを使ってプログラミングすることを記号プログラミングと呼ぶ人がいるらしいです。*1 記号プログラミング Advent Calendar がアツい! - 葉っぱ日記 これを真似て Julia で記号のみのプログラミングをやってみようと思いました。上のリンク先の内容(特にPerlの記事)をなぞっただけなので新規性はないです。 記号のみでプログラミングをするための方策は次の2ステップに分解できます。 任意のAscii文字列を記号のみで表現する 作った文字列を eval する この記事では 1. についてはやりましたが 2. は妥協しました。eval を記号で済ます方法は Julia にはないように思われたからです。 さて、まずは 1.を実現するために、任意の文字 [a-zA-Z] が2つの文字記号の論理演算から作れるということを利用します。 julia> bin('`

    記号のみを使った Julia プログラミングをしたかった - Moriturus te saluto
    sh19910711
    sh19910711 2024/06/06
    "punctuations のみを使ってプログラミングすることを記号プログラミングと呼ぶ人がいるらしい / 記号プログラミング: 任意のAscii文字列を記号のみで表現 + 作った文字列を eval する" 2014
  • Juliaで機械学習:Flux.jlで自由自在にオリジナルレイヤーを組んでみよう 2023年版 - Qiita

    Flux.jlがバージョンアップし、Julia機械学習:Flux.jlで自由自在にオリジナルレイヤーを組んでみよう の内容が古くなってきていますので、新しく記事を書くことにしました。書き方を、最新のFlux.jlのマニュアルに書かれているような形に書き換えています。 はじめに Julia機械学習するならFlux.jlが有名です。 https://github.com/FluxML/Flux.jl これまで、いろいろを記事にまとめてきました。 Julia機械学習:深層学習フレームワークFlux.jlを使ってみる その1:基Julia機械学習:深層学習フレームワークFlux.jlを使ってみる その2:線形回帰編 Julia機械学習:深層学習フレームワークFlux.jlを使ってみる その3:ニューラルネットとバッチ正規化編 Julia機械学習:Flux.jlで自由自在にオリジナ

    Juliaで機械学習:Flux.jlで自由自在にオリジナルレイヤーを組んでみよう 2023年版 - Qiita
    sh19910711
    sh19910711 2024/05/29
    "Flux.DataLoader: データをいい感じにシャッフルして取り出し / ResNetを作るにはParallelを使い + Parallel(f,a,b)のような形 + aの出力とbの出力を用いてf(a,b)とする、という意味" 2023
  • JuliaでOpenStreetMapのXMLをparseした話

    Twitter芸人名@cocomoffです. この記事はJulia Advent Calendar 2021の18日目の記事です.15日目にはTuring.jlを使ったネタで書いたのですが,普段自分でちょっとしたプログラムを書くためにもJuliaを使っていることがあるので,今日はだいぶ前に自分で書いたJuliaプログラムに関する記事です. OpenStreetMapについて 概要 名前ぐらいは聞いたことがある人も多いかもしれないですが,https://www.openstreetmap.org/ で公開されている地図情報です(?). OpenStreetMapは、道路、通路、カフェ、鉄道駅など、世界中にあるすべてのものに関するデータを提供・メンテナンスしているマッパーのコミュニティによって構築されました。 ライブラリ OpenStreetMapを扱うライブラリやソフトウェアはいろいろありま

    JuliaでOpenStreetMapのXMLをparseした話
    sh19910711
    sh19910711 2024/05/27
    "ダウンロードしたosmという拡張子のファイル(中身はXML)がbz2の状態で500MB程度,解凍した状態で6GB程になる / Juliaを使ってEzXMLのストリーム読み込みモードを使う必要 / EzXML.jl: すごいXML処理用のライブラリ" 2021
  • Rust で自動微分ライブラリ作ってみた

    次回 -> 応用編 前回は Rust でディープラーニングフレームワークを作ってみましたが、バックプロパゲーションに必要な微分の計算は手でやっていました。これを自動化できないかというのが今回のお題です。 業界では自動微分(autograd)と言われる技術で、 PyTorch や TensorFlow では標準装備されているみたいです。 自動微分ってなんだか難しそう……と思っていましたが、とある動画でそれほど難しくなさそうに思えたので自前で実装してみました。 例によってコードは下記にあります。 自動微分でできること まず断っておくべきこととして、ここでいう自動微分とは Python における sympy や Matlab の Symbolic math toolbox や Maxima や Wolfram Alpha のようなシンボリックな微分ではなく、数値が分かっている変数間の微分係数を求

    Rust で自動微分ライブラリ作ってみた
    sh19910711
    sh19910711 2024/05/24
    "バックプロパゲーションの本質はノードの変更を行うことなので、純粋関数型言語では簡単にはできませんでした / 状態の変更を伴うロジックは逐次型プログラミング言語がやはり向いて" 2023
  • JuliaからPyCall.jlを使ってPythonのModellerパッケージを動かす - Qiita

    最近プログラミング言語のJuliaを勉強し始めていて、JuliaからPyCall.jlを使ってPythonのModellerをimportして使えたらいいな〜と思ったので、その時の作業記録を残します。また、pycallやpyimportを使う必要性があったことについても述べます。 Modellerのサンプルスクリプトは公式のものを含め色々存在していますが、ここでは私のMDシミュレーションのチュートリアル記事であるMDシミュレーションのチュートリアル〜PDB: 1LKEの場合〜で使われているalign.pyをJuliaから使えるようにしてみます。動作に必要な1LKE_truncated.pdb, alignment.aliは事前に用意しておきます。 動作環境 Julia 1.5.3 Conda v1.5.1 PyCall v1.92.2 元となるpythonのコード 以下のalign.pyを

    JuliaからPyCall.jlを使ってPythonのModellerパッケージを動かす - Qiita
    sh19910711
    sh19910711 2024/05/13
    "PythonにおいてA.B.C()とあったときに、仕様を熟知していないとCがクラスなのか(つまりインスタンスを生成しているのか)、それともメソッド(クラス内関数)なのか、変数なのかわかりにくい" 2021
  • 【PyTorch+Numpy】Dataloaderに潜むありがちなバグ - ころがる狸

    PyTorchは素晴らしい機械学習フレームワークですが、データ読み込みに使うDatasetとNumpyによる乱数発生の組み合わせは思わぬバグの発生源となっているようです。2021年4月10日に投稿されたこちらの記事がTwitter上で話題になっています。 tanelp.github.io 一言で要約するなら:PyTorchでデータを読み込む際にマルチプロセス処理を行うと、親プロセスのNumpyの乱数生成器の状態が子プロセスに継承されるため、ランダムであるべき配列の値がすべて同一になる。上記の記事にはコードもついているので、どういうことか手を動かして確認してみましょう。 悪い例その1と解決策 悪い例その2と解決策 torch.randintの力に頼ろう 悪い例その1と解決策 上の記事でも紹介されているコードがこちらです。numpy.random.randint(0, 1000, 3)で0以上

    【PyTorch+Numpy】Dataloaderに潜むありがちなバグ - ころがる狸
    sh19910711
    sh19910711 2024/05/08
    "DatasetとNumpyによる乱数発生 / データを読み込む際にマルチプロセス処理を行うと、親プロセスのNumpyの乱数生成器の状態が子プロセスに継承されるため、ランダムであるべき配列の値がすべて同一になる" 2021
  • Julia言語における中置演算子の扱い

    はじめに Julia言語の多重ディスパッチやJITコンパイル、実行速度については周知のところだと思います。 記事で書きたいことは数学記号との相性の良さ、特に中置演算子の性質です。 Julia言語は科学技術計算向けの言語として開発された背景があり、とくにUnicodeを使った数学記法との相性が良いように設計されています。 その例: julia> α₄ = 42 # \alpha<Tab>\_4<Tab> で入力 42 julia> 3α₄/12π # 3 * 42 / (12 * π) 3.3422538049298023 julia> 8 ∈ [1,8,12] # 要素が入っているか。Unicodeの中置演算子(\in<Tab>)が便利! true julia> [2,4] ⊆ [1,8,12] # 部分集合の判定。Unicodeの中置演算子(\subseteq<Tab>)が便利! fa

    Julia言語における中置演算子の扱い
    sh19910711
    sh19910711 2024/05/04
    "Julia: 科学技術計算向けの言語として開発された背景があり、とくにUnicodeを使った数学記法との相性が良いように設計 / 中置演算子: 648種類 + 通常の関数のようにも使える" 2023
  • Rは本当に遅いのか?Juliaとの比較例 - Qiita

    このコードについて、twitter上で「Juliaなら数十秒で終わるのにRだとめっちゃ時間かかったんだろうな…」的な発言が流れてきたのを見かけて、当にそうなのか気になったので少し調べました。 そもそもRのループは遅いのか? たしかに、Rのforループが非常に遅いとされていた時代はありました。繰返し処理はなるべくベクトル化して書くべきものであって、forを書くというのは可能であれば避けるべき作法でした。 しかし、R 3.4.0からJITコンパイラが同梱されており、これがデフォルトでONになっている恩恵で、現代のRのforループの速度は相当に改善されています。場合によってはforを書いたほうが速度的に有利なことすらあります。 やってみる まあともかくやってみましょう。 実測とプロファイリング まず「そもそも元のコードがどれだけ時間がかかるのか」を確認しておくと、私の手元のちょっと古くなってき

    Rは本当に遅いのか?Juliaとの比較例 - Qiita
    sh19910711
    sh19910711 2024/04/12
    "R 3.4.0からJITコンパイラが同梱されており、これがデフォルトでONになっている恩恵で、現代のRのforループの速度は相当に改善されています / 詳しい方々の意見を参考に書き直したらJuliaのが3倍くらい早くなりました" 2019
  • 数値計算屋にはFortranは捨てなくても良いけどソフトウェアエンジニアリングを学んでほしい - HPCメモ

    twitterでこちらの記事をみかけたので、Fortran完全に理解したエンジニアの一人として便乗記事を書いときます。 qhapaq.hatenablog.com ちなみに、私は学生時代からかれこれ20年近く数値計算屋をやってますが、メインの言語はC、C++Pythonときて今は主にJavascriptを使ってます。とはいえ、就職してからは基的にチューニング屋なので、普通の数値計算屋さんの数倍は他人の(主にFortran)コードを読み書きしてきたと思っています。その中で日頃感じていたもやもやをこの機会にまとめてみました。 元記事には3つFortranを捨てるべき理由が挙げられていますが、個々の内容に対しては概ねその通りだと思います。(細かいところで異論は色々とあるんですが、そこは筋ではないので省略します) ところが、残念ながらFortranを捨てても何も解決しないのです。 私が今まで

    数値計算屋にはFortranは捨てなくても良いけどソフトウェアエンジニアリングを学んでほしい - HPCメモ
    sh19910711
    sh19910711 2023/04/09
    2019 / "秘伝のタレみたいなコードが数値計算の世界ではそこそこ生き残っている / 残念ながらFortranを捨てても何も解決しない / プログラミング言語を変えたところでソフトウェアの品質が良くなるわけではない"
  • FORTRAN入門、COBOL入門 - とね日記

    理数系ネタ、パソコン、フランス語の話が中心。 量子テレポーテーションや超弦理論の理解を目指して勉強を続けています! 酒の肴 懐かしいAmazonで見つけた。ページをパラパラめくり、学生時代を思い出しながら酒を飲むのにちょうどよい。僕にとっては酒の肴である。 大学時代の計算機実習はFORTRAN。左の黄色い表紙の教科書を授業で使っていた。その後、培風館のこのは改訂され、「FORTRAN 77入門」となった。ページ数も318ページから424ページに増えている。 クリックで拡大 ページをめくると、学生時代の記憶が蘇ってくる。(COBOLはやっていなかったので蘇ってこない。) FORTRAN入門(クリックで拡大) COBOL入門(クリックで拡大) 僕のように学生時代に思いをはせたいという方はこちらからどうぞ。 「FORTRAN入門 三訂版: 浦 昭二」(1980) 「FORTRAN 77入

    FORTRAN入門、COBOL入門 - とね日記
    sh19910711
    sh19910711 2022/10/10
    2017 / "穴を開けたパンチカードを束ねて輪ゴムでとめて、計算機センターの受付の人に渡す / 翌日、132桁のプリンター用紙に出力されたプログラムリストと実行結果を受け取る / 間違えていたら最初からやり直し"
  • プログラミング言語と私

    新・闘わないプログラマ No.20 プログラミング言語と私 このコラムも今回で20回を数えます。ほぼ週1回というペースにもかかわらずよく続いたな、と自分でも感心してしまいます。 先日、今までの分を読み返してみたのですが、対象となる読者層をあまり想定していない、というか、その回ごとにレベルにばらつきがありますね。作者は思った事をただずらずらと書いているだけで、要するに何も考えていない、ということなのでしょう(^^;) で、今回のテーマは「プログラミング言語」です。プログラムを作った事の無い人にはちんぷんかんぷんかも知れませんが、まぁ、作者は何も考えていない、ということでご了承下さい。 私がコンピュータの世界に出会ってから、もう20年以上が過ぎました。その間に、いろんなプログラミング言語と付き合っていきました。 結構まじめにプログラムを作ったことがある言語は、FORTRANとC、それといくつか

    sh19910711
    sh19910711 2022/10/10
    1998 / "以前NetNewsを見ていたら、パンチカードでFORTRANのプログラムを作る話があって、使えそうなカードをごみ箱から拾ってくる話が載っていました。そこで、 10 CONTINUE というカードを拾ってくる話があって"
  • とあるプログラマーの追憶 - kagamihogeの日記

    プログラム覚えるのに 必要なのってなんですか プログラム覚えるのに より抜粋 確かに、プログラミングができるようになるのに必要なことって何なんだろう、と思うことはある。既に書けるようになっちゃった人の「今」だけを見ると、なおさら良くわからんくなるよなぁ、とも思う。 というわけで。とあるプログラマーこと俺がどんな風に育ってきたか……大学生活 4 年間を振り返ることで、プログラムを覚えるのに必要な一例を示す。ま、履歴書みたいなもんですな。 ただし、この育成例は大学教育というものにベッタリです。万人にオススメできるものでもないし、ましてやこうしなければプログラムを覚えられないという性質のものではない、ということに注意。要は、あくまでも一例、ということです。 動機と時代背景 俺は人から「大学で何勉強してきたの?」と聞かれたときは「大雑把に言えば情報系ですね」と答えるようにしている。では、なぜその大

    とあるプログラマーの追憶 - kagamihogeの日記
    sh19910711
    sh19910711 2022/10/05
    2008 / "当時のプログラミング初等教育はPascalを用いるのが一種のトレンド / バブルソート: コンソールに幾つかの数字を入れると、それが昇順に整列されて表示される…ただそれだけのものだったけど、これにすごい感動"
  • Joneswareの世界 - りんごがでている

    Julia Advent Calendar 2日目の記事です。 JoneswareというのはJulia界の重要人物のひとりであるdcjonesさんの作ったパッケージをさしています。 実は私のJulia Summer of Codeプロジェクトのメンターになってくれた方で、今年のJuliaConでお会いしたこともあります。 彼の書くプログラムは非常に洗練されていて、その設計やスタイルは非常に学ぶところが多いです。 その上、ハイパフォーマンスなコードばかりで、Julia技術計算を始める方は是非参考にしてみると良いと思います。 グラフィックスなど Gadfly.jl 最初は皆さんご存知のGadfly.jlです。 これはggplot2のような"Grammar of Graphics"のアイディアに則ったプロットのためのパッケージです。 具体例はマニュアルを見ていただけると分かるのですが、簡潔なA

    Joneswareの世界 - りんごがでている
    sh19910711
    sh19910711 2022/07/11
    2015 / "Gadfly.jl: ggplot2のような"Grammar of Graphics"のアイディアに則ったプロットのためのパッケージ / IntervalTrees.jl: 区間木の実装 + バイオインフォマティクスでは、ゲノムや染色体のある区間を扱いたいことがよくあります"
  • Elixir でデータ分析 Explorer を使ってみた - Qiita

    はじめに 最近の Elixir の発展は目覚ましいですね Elixir で高速データ探索をするためのパッケージとして、 Explorer (冒険家) がリリースされたようです 早速 Livebook で使ってみました 実行したコードはこちら

    Elixir でデータ分析 Explorer を使ってみた - Qiita
    sh19910711
    sh19910711 2022/06/25
    "Elixir で高速データ探索をするためのパッケージとして、Explorerがリリース / 公式にノートブックのサンプル / Elixir 版 pandas に思えます + 実際には R の dplyr を参考に作ったようです > Elixir で同じようにデータ集計できる"
  • 無料で使える数式処理システムまとめ - Qiita

    Mathematica Mathematicaは無料では使えないが、Mathematicaの機能を無料で使う方法は3つあります。 WOLFRAM CLOUD Wolfram Engine + Jupyter-notebook Raspberry Pi上でMathematica WOLFRAM CLOUDが一番楽ですが、長い計算は出来ません。なので私はJupyter notebookを使ってます。Raspberry Pi上で動かすのは使った事ありません。 sympy Pythonはライブラリで無料で使えます。conda installとかpip installで入るはず。 私はjupyter notebookで使ってます。(jupyter notebookなら数式をきれいに標準してくれます。) SageMath 無料で使えます。apt installとかで入ります。anacondaで入れたj

    無料で使える数式処理システムまとめ - Qiita
    sh19910711
    sh19910711 2022/05/17
    "意外とSageMathの方が良かったりもする。Mathematicaで出来なかったらSageMathに打ち込んでみたり、SageMathで出来なかったらMathematicaに打ち込んでみたりしたら良い気がする"