タグ

Pythonとcontainerに関するslay-tのブックマーク (9)

  • GitHub Codespaces と Prebuilding Codespaces を使ってサクサク起動する Miniconda の環境を構築する - しばやん雑記

    最近は C# と Node.js 以外の環境は WSL 2 や GitHub Codespaces を使って用意することが多いのですが、Conda (Miniconda) を使った環境の構築時にかなりハマったのでメモとして残します。 結果的にはまずまずの環境が出来たと思っていますが、思ったより情報が少ないのと検証中は Codespace のリビルドに時間がかかってしまい厳しかったです。 例によって GitHub Codespaces と言っていますが、中身は Dev Container なのでローカルの VS Code でも問題なく使えるはずです。ちなみに GitHub Codespaces 自体は Team か Enterprise を契約しているとすぐに使えますが、個人向けは永遠にベータの予感がしてきました。 Miniconda の Dev Container 定義を作成する 作成した

    GitHub Codespaces と Prebuilding Codespaces を使ってサクサク起動する Miniconda の環境を構築する - しばやん雑記
  • distroless imageを実用する | うなすけとあれこれ

    distrolessは、Googleが提供している、当に必要な依存のみが含まれているcontainer imageです。そこにはaptはおろかshellも含まれておらず、非常にサイズの小さいimageとなっています。余計なプログラムが含まれていないことは attack surfaceの縮小にも繋がり、コンテナのセキュリティについての事業を展開しているSysdig社が公開しているDockerfileのベストプラクティスとしてもdistroless imageを使うことが推奨されています。 Dockerfileのベストプラクティス Top 20 | Sysdig 軽量Dockerイメージに安易にAlpineを使うのはやめたほうがいいという話 - inductor’s blog また先日、inductorさんがこのようなブログ記事を書き話題になりました。この記事からdistroless ima

    distroless imageを実用する | うなすけとあれこれ
  • Python: ユニットテストを書いてみよう - CUBE SUGAR CONTAINER

    ソフトウェアエンジニアにとって、不具合に対抗する最も一般的な方法は自動化されたテストを書くこと。 テストでは、書いたプログラムが誤った振る舞いをしないか確認する。 一口に自動テストといっても、扱うレイヤーによって色々なものがある。 今回は、その中でも最もプリミティブなテストであるユニットテストについて扱う。 ユニットテストでは、関数やクラス、メソッドといった単位の振る舞いについてテストを書いていく。 Python には標準ライブラリとして unittest というパッケージが用意されている。 これは、文字通り Python でユニットテストを書くためのパッケージとなっている。 このエントリでは、最初に unittest パッケージを使ってユニットテストを書く方法について紹介する。 その上で、さらに効率的にテストを記述するためにサードパーティ製のライブラリである pytest を使っていく。

    Python: ユニットテストを書いてみよう - CUBE SUGAR CONTAINER
  • Python: 機械学習における不均衡データの問題点と対処法について - CUBE SUGAR CONTAINER

    機械学習における分類問題では、扱うデータセットに含まれるラベルに偏りのあるケースがある。 これは、例えば異常検知の分野では特に顕著で、異常なデータというのは正常なデータに比べると極端に数が少ない。 正常なデータが 99.99% なのに対し異常なデータは 0.01% なんてこともある。 このようなデータセットは不均衡データ (Imbalanced data) といって機械学習で扱う上で注意を要する。 今回は、不均衡データを扱う上での問題点と、その対処法について見てみる。 なお、登場する分類問題の評価指標については、以前このブログで扱ったことがあるのでそちらを参照のこと。 blog.amedama.jp 使った環境は次の通り。 $ sw_vers ProductName: Mac OS X ProductVersion: 10.14.2 BuildVersion: 18C54 $ python

    Python: 機械学習における不均衡データの問題点と対処法について - CUBE SUGAR CONTAINER
  • Python: デコレータについて - CUBE SUGAR CONTAINER

    Python の特徴的な構文の一つにデコレータがある。 便利な機能なんだけど、最初はとっつきにくいかもしれない。 そこで、今回はデコレータについて一通り色々と書いてみる。 先に断っておくと、とても長い。 これを読むと、以下が分かる。 デコレータの質 デコレータはシンタックスシュガー (糖衣構文) に過ぎない デコレータの作り方 引数を取るデコレータと取らないデコレータ デコレータの用途 用途はラッピングとマーキングの二つに大別できる デコレータの種類 デコレータは関数、メソッド、インスタンスで作れる デコレータの対象 デコレートできるのは関数、メソッド以外にクラスもある 今回使った環境は次の通り。 尚、紹介するコードの中には、一部に Python 3 以降でないと動作しないものが含まれている。 $ python -V Python 3.6.6 デコレータについて まずはデコレータのおさら

    Python: デコレータについて - CUBE SUGAR CONTAINER
  • Python: scikit-learn のロジスティック回帰を使ってみる - CUBE SUGAR CONTAINER

    最近、意外とロジスティック回帰が使われていることに気づいた。 もちろん世間にはもっと表現力のある分類器がたくさんあるけど、問題によってどれくらい複雑なモデルが適しているかは異なる。 それに、各特徴量がどのように働くか重みから確認したり、単純なモデルなのでスコアをベンチマークとして利用する、といった用途もあるらしい。 今回は、そんなロジスティック回帰を scikit-learn の実装で試してみる。 使った環境は次の通り。 $ sw_vers ProductName: Mac OS X ProductVersion: 10.13.6 BuildVersion: 17G65 $ python -V Python 3.6.6 $ pip list --format=columns | grep -i scikit-learn scikit-learn 0.19.2 下準備 まずは scikit-

    Python: scikit-learn のロジスティック回帰を使ってみる - CUBE SUGAR CONTAINER
  • Python: ベイズ最適化で機械学習モデルのハイパーパラメータを選ぶ - CUBE SUGAR CONTAINER

    機械学習モデルにおいて、人間によるチューニングが必要なパラメータをハイパーパラメータと呼ぶ。 ハイパーパラメータをチューニングするやり方は色々とある。 例えば、良さそうなパラメータの組み合わせを全て試すグリッドサーチや、無作為に試すランダムサーチなど。 今回は、それとはちょっと違ったベイズ最適化というやり方を試してみる。 ベイズ最適化では、過去の試行結果から次に何処を調べれば良いかを確率分布と獲得関数にもとづいて決める。 これにより、比較的少ない試行回数でより優れたハイパーパラメータが選べるとされる。 Python でベイズ最適化をするためのパッケージとしては Bayesian Optimization や skopt、GPyOpt などがある。 今回は、その中でも Bayesian Optimization を使ってみることにした。 使った環境は次の通り。 $ sw_vers Produ

    Python: ベイズ最適化で機械学習モデルのハイパーパラメータを選ぶ - CUBE SUGAR CONTAINER
  • Python: tqdm で処理の進捗状況をプログレスバーとして表示する - CUBE SUGAR CONTAINER

    最近は Pythonデータ分析機械学習の分野でも使われるようになってきた。 その影響もあって REPL や Jupyter Notebook 上でインタラクティブに作業することも増えたように感じる。 そんなとき、重い処理を走らせると一体いつ終わるのか分からず途方に暮れることもある。 今回紹介する tqdm は、走らせた処理の進捗状況をプログレスバーとして表示するためのパッケージ。 このパッケージ自体はかなり昔からあるんだけど、前述した通り利用環境の変化や連携するパッケージの増加によって便利さが増してきてる感じ。 使った環境は次の通り。 $ sw_vers ProductName: Mac OS X ProductVersion: 10.13.5 BuildVersion: 17F77 $ python -V Python 3.6.5 もくじ もくじ 下準備 基的な使い方 panda

    Python: tqdm で処理の進捗状況をプログレスバーとして表示する - CUBE SUGAR CONTAINER
  • Python: ソケットプログラミングのアーキテクチャパターン - CUBE SUGAR CONTAINER

    今回はソケットプログラミングについて。 ソケットというのは Unix 系のシステムでネットワークを扱うとしたら、ほぼ必ずといっていいほど使われているもの。 ホスト間の通信やホスト内での IPC など、ネットワークを抽象化したインターフェースになっている。 そんな幅広く使われているソケットだけど、取り扱うときには色々なアーキテクチャパターンが考えられる。 また、比較的低レイヤーな部分なので、効率的に扱うためにはシステムコールなどの、割りと OS レベルに近い知識も必要になってくる。 ここらへんの話は、体系的に語られているドキュメントが少ないし、あっても鈍器のようなだったりする。 そこで、今回はそれらについてざっくりと見ていくことにした。 尚、今回はプログラミング言語として Python を使うけど、何もこれは特定の言語に限った話ではない。 どんな言語を使うにしても、あるいは表面上は抽象化さ

    Python: ソケットプログラミングのアーキテクチャパターン - CUBE SUGAR CONTAINER
  • 1