タグ

ブックマーク / blog.amedama.jp (4)

  • Python: REPL に複数行をペーストしたときの挙動が変わって困った件について - CUBE SUGAR CONTAINER

    表題のとおりなんだけど、最近 Python の REPL に複数行のコードをペーストしたときの挙動が以前と変わってしまい困っていた。 その Python というのは、具体的には Homebrew でインストールしたものや、Pyenv を使ってソースコードからビルドしたもの。 使っている環境は次のとおり。 $ sw_vers ProductName: Mac OS X ProductVersion: 10.15.7 BuildVersion: 19H114 $ brew info readline | head -n 1 readline: stable 8.1 (bottled) [keg-only] $ pyenv --version pyenv 1.2.22 もくじ もくじ TL;DR 問題についてもうちょっと詳しく TL;DR 結論から先に述べると、これは Python のビルドに使

    Python: REPL に複数行をペーストしたときの挙動が変わって困った件について - CUBE SUGAR CONTAINER
    HHR
    HHR 2021/09/02
    set enable-bracketed-paste off
  • C: 静的ライブラリと共有ライブラリについて - CUBE SUGAR CONTAINER

    C 言語で書かれた静的ライブラリと共有ライブラリについて、いまいち理解がちゃんとしていなかったのでまとめておく。 ライブラリというのは、複数のアプリケーションで使われるような共通の機能をまとめたものをいう。 今回使った環境は次の通り $ cat /etc/lsb-release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=20.04 DISTRIB_CODENAME=focal DISTRIB_DESCRIPTION="Ubuntu 20.04.3 LTS" $ uname -rm 5.11.0-1021-gcp x86_64 $ gcc --version gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0 Copyright (C) 2019 Free Software Foundation, Inc. This is free s

    C: 静的ライブラリと共有ライブラリについて - CUBE SUGAR CONTAINER
    HHR
    HHR 2021/07/12
    gccでlibhogeを作る際の引数例。ldconfig -vでリンカのパス一覧、-pでロード済みの共有ライブラリ一覧、引数無しで更新(sudo)。lddでexeの依存libみれるが静的libは同梱なので表示されない。共有libのみ表示。
  • Python: PySpark でサードパーティ製のライブラリを使って分散処理する - CUBE SUGAR CONTAINER

    今回は PySpark でサードパーティ製のライブラリを使って分散処理をする方法について。 サンプルとして、次のような状況を試した。 Apache Spark + Hadoop YARN で構築した分散処理用のクラスタを用いる サードパーティ製のライブラリとして scikit-learn を想定する scikit-learn の学習済みモデルを、あらかじめローカルで用意しておく Iris データセットと学習済みモデルを使った推論を PySpark で分散処理する 使った環境は次の通り。 $ cat /etc/redhat-release CentOS Linux release 7.6.1810 (Core) $ uname -r 3.10.0-957.21.3.el7.x86_64 $ python3 -V Python 3.6.8 $ pyspark --version Welcome

    Python: PySpark でサードパーティ製のライブラリを使って分散処理する - CUBE SUGAR CONTAINER
    HHR
    HHR 2021/02/25
    conda仮想環境をsparkで使う。executorで任意の関数呼び出しが参考になる。モデル作成は済ませており推論をsparkで分散処理する例あり。モデルはbroadcastでばら撒く。パーティション単位で処理するときはmapPartitions()
  • Python: オブジェクトを漬物 (Pickle) にする - CUBE SUGAR CONTAINER

    Python の標準ライブラリにある pickle モジュールは Python のオブジェクトを直列化・非直列化するための機能を提供している。 直列化 (Serialize) というのはプログラミング言語においてオブジェクトをバイト列などの表現に変換することを指す。 非直列化 (Deserialize) はその逆で、バイト列を元にオブジェクトを復元することだ。 バイト列などに変換されたデータはファイルなどの形で永続化できる。 最近の典型的な用途でいえば、機械学習で学習済みのモデルを保存して取り回すためなんかに使われる。 ところで、モジュール名でもある pickle という単語は、複数形にすると pickles つまりハンバーガーなどにはさまっているピクルスになる。 きっとメモリ上にある揮発性で賞味期限の短いオブジェクトを、バイト列などの形でファイルなどに長期保存できる状態にすることをピクル

    Python: オブジェクトを漬物 (Pickle) にする - CUBE SUGAR CONTAINER
    HHR
    HHR 2021/01/18
    プロトコルには複数のバージョンが存在。Python 2.7で使用できるプロトコルバージョンは2まで。Python3.5と2.7の両方で扱うことのできるpickleを作るにはプロトコルのバージョンを 2 以下に指定しなければいけない
  • 1