タグ

2018年8月25日のブックマーク (10件)

  • Python: scikit-learn の Pipeline 機能をデバッグする - CUBE SUGAR CONTAINER

    今回はだいぶ小ネタ。 以前にこのブログでも記事にしたことがある scikit-learn の Pipeline 機能について。 blog.amedama.jp scikit-learn の Pipeline 機能は機械学習に必要となる複数の工程を一つのパイプラインで表現できる。 ただ、パイプラインを組んでしまうと途中のフェーズで出力がどうなっているか、とかが確認しにくい問題がある。 この問題について調べると以下の StackOverflow が見つかるんだけど、なかなかシンプルな解決方法だった。 stackoverflow.com 先に概要を述べると、特に何もしないフェーズを用意して、そこでデバッグ用の出力をするというもの。 下準備 まずは必要になるパッケージをインストールしておく。 $ pip install pandas scikit-learn scipy numpy Pipelin

    Python: scikit-learn の Pipeline 機能をデバッグする - CUBE SUGAR CONTAINER
  • Goならわかる Linuxのメモリ管理

    x86_64のLinuxで実行すると、何が表示される? 実行環境: go 1.10 / Linux version 4.18.0-rc8 / Intel(R) Core(TM) i7-8650U、デバッガはmain.mainでbreak 1. hoge 2. 0x0 - 0x528000 のどこか 3. 0x528000 - 0x547000 [heap] のどこか 4. 0x7ffffffde000 - 0x7ffffffff000 [stack] のどこか 5. 2,3,4以外の領域のどこか 6. それ以外 func main() { a := "hoge" fmt.Println(&a) } (gdb) i proc mappings process 26627 Mapped address spaces: Start Addr End Addr Size Offset objfil

    Goならわかる Linuxのメモリ管理
  • ソースコードから Python をインストールするときにビルドされないモジュールを確認する - CUBE SUGAR CONTAINER

    ソースコードから Python をインストールするとき、環境によってはビルドされないモジュールが出てくる。 今回は、どんなモジュールがビルドされなかったかを確認する方法について。 先に結論から書くと、ビルドされなかったモジュールがあるときはログにメッセージが残る。 使った環境は次の通り。 $ cat /etc/lsb-release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=18.04 DISTRIB_CODENAME=bionic DISTRIB_DESCRIPTION="Ubuntu 18.04.1 LTS" $ uname -r 4.15.0-20-generic 下準備 まずは、あえてビルドされないモジュールが出るように環境を整える。 最低限のビルドだけはできるように build-essential パッケージだけインストールしておこう。 $ sudo a

    ソースコードから Python をインストールするときにビルドされないモジュールを確認する - CUBE SUGAR CONTAINER
  • SQLで羃等にDBスキーマ管理ができるツール「sqldef」を作った - k0kubun's blog

    sqldefのリポジトリ github.com これは何か Ridgepoleというツールをご存じでしょうか。 これはRubyのDSLでcreate_tableやadd_index等を書いてスキーマ定義をしておくとそれと実際のスキーマの差異を埋めるために必要なDDLを自動で生成・適用できる便利なツールです。一方、 で言われているように、Ridgepoleを動作させるためにはRubyやActiveRecordといった依存をインストールする必要があり、Railsアプリケーション以外で使う場合には少々面倒なことになります。*1 *2 そこで、Pure Goで書くことでワンバイナリにし、また別言語圏の人でも使いやすいよう、RubyのDSLのかわりに、誰でも知ってるSQLCREATE TABLEやALTER TABLEを書いて同じことができるようにしたのがsqldefです。 使用例 現時点ではMy

    SQLで羃等にDBスキーマ管理ができるツール「sqldef」を作った - k0kubun's blog
  • モダンなJava開発ガイド (2018年版)

    2018年現在でもJava開発をしていると、Antすら使っていないEclipseプロジェクトにそこそこの頻度で出くわします。Eclipseの自動コンパイルが通ればOKであり、ビルドはExcel手順書をもとに手動で行われ、依存関係ライブラリはもちろんlibフォルダに各種jarファイルが放り込んであります。Eclipse上以外ではどう動かせば分かる人がいないため、コマンドラインからビルドなどを行うことは叶わず、CI化なんて夢のまた夢です。 そんなJava開発から脱却したい人向けのJava開発のモダン化ガイドです。 基的にJava 8以降での開発を想定しています。 OpenJDK/OracleJDK上での開発を想定しています。 Android開発の場合は一部適用できない可能性あり。 英語のIDE、ツール等は積極的に使用します。 英語嫌いだとモダン化は難しい。 Java開発全般を前提としているた

    モダンなJava開発ガイド (2018年版)
  • Python: 層化抽出法を使ったK-分割交差検証 (Stratified K-Fold CV) - CUBE SUGAR CONTAINER

    K-分割交差検証 (K-Fold CV) を用いた機械学習モデルの評価では、元のデータセットを K 個のサブセットに分割する。 そして、分割したサブセットの一つを検証用に、残りの K - 1 個を学習用に用いる。 上記の作業で、元のデータセットを K 個のサブセットに分割する工程に着目してみよう。 果たして、どのようなルールにもとづいて分割するのが良いのだろうか? このとき、誤ったやり方で分割すると、モデルの学習が上手くいかなかったり、汎化性能を正しく評価できない恐れがある。 今回は、分割方法として層化抽出法を用いたK-分割交差検証 (Stratified K-Fold CV) について書いてみる。 この方法を使うと、学習用データと検証用データで目的変数の偏りが少なくなる。 実装には scikit-learn の sklearn.model_selection.StratifiedKFol

    Python: 層化抽出法を使ったK-分割交差検証 (Stratified K-Fold CV) - CUBE SUGAR CONTAINER
  • Big Sky :: golang で tensorflow のススメ

    « Software Design 2018年7月号「Vim 絶対主義」の執筆に参加しました。 | Main | ボタンを押したら golang の if err... を自動入力 » tensorflow といえば Python と思っておられる方も多いのではないでしょうか。間違いではないのですが、これは初期に作られた Python 向けのバインディングに研究者達が多くいついた結果に過ぎないと思っています。実際 tensorflow は現在 C言語、C++PythonJavaGo から利用する事ができ、最近では JavaScript にも移植されています。筆者自身も Go で tensorflow を使ったシステムを構築し、運用保守しています。問題も発生せず機嫌良く動いています。学習の利用部分は GPU のパフォーマンスに依存しますが、それ以外の部分については各言語の実装に依存し

    Big Sky :: golang で tensorflow のススメ
  • macOSでの開発環境を全部Docker化したらリストア時間が1時間半になった - The paradigm shift

    どうも、リストア職人のさぼです。みなさんmacOSをどのぐらいの頻度でリストアしてますか?1年に1回はやってますよね?僕は3ヶ月に1回はやるようにしてます。綺麗な状態にしてOSが最大限のパフォーマンスで動いた方がいいし手元に入れたよくわからないアプリがずっと入ってるのって気持ちよくないじゃないですか。なのでMacを定期的にリストア(工場出荷状態に初期化)してます。 前回までは真っ白な状態からだいたい3時間ぐらいで普段開発している環境を構築できるようにしていたのですが今回から開発環境を全部Dockerにしてみようと思ってやってみたところ1時間半で開発環境を終えて作業開始できる状態までの最短記録を更新しました! おわり(おわらない) いつもやってる手順を振り返りがてら紹介していきます。 Brewfile いつもリストア後は brew bundle コマンドでアプリやソフトウェアを入れるようにし

    macOSでの開発環境を全部Docker化したらリストア時間が1時間半になった - The paradigm shift
  • ツールは解決策ではない | POSTD

    最近、『The Atlantic』に掲載された非常に重苦しい 記事 「The Coming Software Apocalypse」(きたるソフトウェア大惨事)を読み終えました。同記事は最初のうちは、人に傷害を与えたり、人の命を奪ったりした恐ろしいソフトウェアバグについて述べており、いい内容です。しかし、途中から急に残念な展開になっているのです。 同記事の著者はソフトウェア業界の多くの思想的リーダーにインタビューをしましたが、 Light Table 、 モデル駆動工学 、 TLA+ といった新しい技術を生み出したリーダーだけを選んでいます。 私はこうしたツールに何ら反対しているわけではありません。Light Tableプロジェクトに資金提供さえしました。優れたソフトウェアツールは優れたソフトウェアを書きやすくすると思います。しかし、ツールは「大惨事」に対する解決策ではありません。 著者は

    ツールは解決策ではない | POSTD
  • 「Windows 95」がWindows/macOS/Linux上で動作するアプリに | 気になる、記になる…

    懐かしの「Windows 95」がWindowsmacOSLinux上で動作するアプリとなって登場しました。 といっても非公式版ですが、公開したのはSlackに勤める開発者のFelix Rieseberg氏で、「Windows 95」をエミュレートするアプリとなっており、ペイント、メモ帳、マインスイーパ-、コントロールパネルなどほぼ全てのアプリを利用可能です。 (Internet Explorerは機能せず) アプリ版「Windows 95」はGithubからダウンロード可能で、ファイルサイズは129MBとなっており、ちょっとマウスカーソルの移動が難しいですが、是非どうぞ。 ・Github [via The Verge]

    「Windows 95」がWindows/macOS/Linux上で動作するアプリに | 気になる、記になる…