タグ

ブックマーク / qiita.com (601)

  • NVIDIAの訓練済みモデルで遊ぶ - Qiita

    NVIDIA は訓練済みモデルを公開している NVIDIA は最新のモデルの実装や、訓練済みモデルを公開しています。 カタログページ では、DeepLearning に限らず docker のコンテナなど分野問わず研究成果を公開していて見ていて楽しいです。 また、github の NVlabs では、実装が置いてあったりします。 今回は、この中から面白そうなもので、訓練済みモデルをダウンロードできるものを使って遊んでみたいと思います。 使うモデル NVlabs の中の FUNIT というものを使って遊びたいと思います。 pix2pix のような Image-to-Image Translation のモデルのようです。 犬を別の動物に変えるような画像を生成したりしています。 訓練では動物の顔を別の動物の顔に変換するような訓練をしていますが、自分の顔の画像を入力して自分の顔を別の動物に変えて

    NVIDIAの訓練済みモデルで遊ぶ - Qiita
    dpprkng
    dpprkng 2020/12/23
  • Python コードの高速化のアプローチ - Qiita

    はじめに こんにちは。こんばんはかもしれません。爲岡 (ためおか) と申します。 2020年4月から株式会社グロービスにて機械学習エンジニアとして働いています。 グロービスでは機械学習技術を利用したプロジェクトや、データ基盤の運用改善プロジェクトを担当しています。 機械学習技術を利用したシステムには様々なものがあると思いますが、 現状のグロービスにおいては、ユーザのリクエストに対して機械学習を行い、 すぐに結果を返す必要があるようなシステムは扱っておらず、 ある程度の時間をかけて学習、推定した結果を非同期にアプリケーションに連携するシステムのみを扱っています。 ゆえに、今のところは機械学習技術を利用したロジックを書くときに、速さを意識することはあまりありません。 一方で、空いている時間に競技プログラミングをやっていることもあり、 高速なコードについて考えたり、書いたりすることは個人的には好

    Python コードの高速化のアプローチ - Qiita
    dpprkng
    dpprkng 2020/12/22
  • AWSでやらかして3桁万円請求された話 - Qiita

    はじめに こんにちはkappa0923です。 普段はSierでクラウドアーキテクトをしています。 この記事は「番環境でやらかしちゃった人 Advent Calendar 2020」20日目の記事です。 今回はAWSの設定をミスったために普段の10倍以上の料金を請求されるに至った経緯と、その対策について記載していきます。 お断り この記事はあくまでもノウハウを共有して、同様にやらかす人を少しでも減らすことを目的としています。 記事の内容はあくまで個人の見解であり、所属とは関係ありません。 また、多少のフェイクを混ぜますので、あらかじめご了承ください。 発生背景 とあるWebシステムをAWS上で構築し、開発・運用を行っていました。 このWebシステムではバッチ処理を並列で行うため、複数の小さいEC2インスタンスを作成→実行→削除という構成をとっていました。 これにより必要ない時間はEC2イン

    AWSでやらかして3桁万円請求された話 - Qiita
    dpprkng
    dpprkng 2020/12/21
  • たった1行から始めるPythonのAST(抽象構文木)入門 - Qiita

    はじめに この記事は2020年のRevCommアドベントカレンダー20日目の記事です。 19日目は@metal-presidentさんの「モバイルチームの成長とKMM導入に向けて」でした。 11月に株式会社RevCommに入社した@rhoboroです。 前職では主にGCP x Pythonで、現職では主にAWS x Pythonで日々業務を行なっています。 RevCommでは広島県の尾道からフルリモートワークで働いているので、そういった働き方にもし興味があればこちらの記事もご覧ください。 それでは、題に入ります。 PythonのAST(抽象構文木)とは? この記事は、PythonのAST(抽象構文木、Astract Syntax Tree)に触れたことのない方を対象にしたASTの入門記事です。 そもそもASTとは何なのか、ASTを理解すると何ができるのかを中心に紹介していきます。 さっそ

    たった1行から始めるPythonのAST(抽象構文木)入門 - Qiita
    dpprkng
    dpprkng 2020/12/21
  • 【Opal】娘のために作ったRubyプログラムをブラウザ上で動かしてみた - Qiita

    はじめに この記事はRuby Advent Calendar 2020 19日目の記事です。 さて、突然ですが、最近僕の娘がハイキュー!!というアニメのカードを集めるのにハマり始めました。 このカードは1枚110円で、全部で55種類あります。 当然ながら娘は全種類集めたい!と言います。 僕が調べた範囲では特にレアカードの設定はないようなので、「どのカードも出てくる確率は同じ」と仮定した上でカードを買い続けたら、いったいどれくらいの枚数を買うことになるんだろう?と思いました。 そこでRubyを使って簡単なシミュレーションプログラムを作ってみました。 require 'set' class Simulator NUMBER_OF_TYPES = 55 def self.simulate set_of_cards = Set[] all_types = (1..NUMBER_OF_TYPES).

    【Opal】娘のために作ったRubyプログラムをブラウザ上で動かしてみた - Qiita
    dpprkng
    dpprkng 2020/12/19
  • 7万行のJavaScriptコードをTypeScriptに移行した話 - Qiita

    はじめに 今関わっているプロジェクトで7万行以上のコードを、JavaScriptからTypeScriptに移行するというのを経験しました。 移行するにあたっての準備や手順、実際にやってみて感じたことなどを共有します。 プロジェクトの概要 フルスタックWEBアプリケーション フロントエンド: JavaScript + React バックエンド: Node.js + Express.js + GraphQL なぜそもそもTypeScriptを採用しなかったのか 事前に技術選定をした際に、TypeScriptを利用するかどうかの議論はありました。 当時は以下の理由から採用しないという選択に至りました。 JavaScriptの開発に慣れていたため、TypeScript型定義=面倒というイメージが強かった 「スピードが命」と考えており、TypeScriptを使うことで開発効率が下がると思っていた プ

    7万行のJavaScriptコードをTypeScriptに移行した話 - Qiita
    dpprkng
    dpprkng 2020/12/10
  • 2で割ることと3で割ること - Qiita

    この記事でお題にするのはCPUレジスタ上の整数除算です。以下、単に除算とも書きます。 除算は非常に高コストな演算なため、コンパイラは最適化によって、できるだけ整数除算を別の計算に置き換えようとします。 最適化ができる場合の一つとして、割る数が定数である場合があります。頭のいいコンパイラは、除算を乗算とビットシフト等を駆使した演算に置き換えます。この記事では、そういった最適化の背景にある理屈を部分的に解説します。 計算機環境としてはモダンなx86 CPUを仮定します。したがってレジスタは32/64ビットであり、負数は2の補数表現になっています。ある程度は他の命令セットでも通用する話になっているかもしれません。 そもそも整数の除算とは プログラミングにおける整数の除算の定義について確認します。整数$n$を整数$d$で割るとき $$ n = q \times d + r $$ が成り立つように除

    2で割ることと3で割ること - Qiita
    dpprkng
    dpprkng 2020/12/09
  • NetBSDを手探りで移植したときの話 - Qiita

    この記事は自作OS Advent Calendar 2020 7日目の記事となります。 はじめに 現在のオープンソースOSは、たとえばLinux開発ボードであればボードベンダーから移植済みのLinux環境が提供されたり、たとえばNetBSDであればクロスコンパイル環境が整備済みでドキュメントも用意されていて、最低限の移植作業で移植が完了したりします。 ぼくがNetBSDを移植した当時(1993年)はそうではありませんでした。ドキュメントもなくいろいろ手探りで、それも一人でやらざるを得ませんでした。苦労話のことは置いておいて、技術的にどういう物が用意され何を調べてどういう手順で移植していったかを記録に残せればと思います。(って前置きした割に苦労話が多いような気がします、すみません) かなり昔の話なので、けっこう忘れてることも多く、微妙に記憶が間違っていたりすることも、順番が前後していることも

    NetBSDを手探りで移植したときの話 - Qiita
    dpprkng
    dpprkng 2020/12/08
  • C++からRustに移行して1年経って思ったこと - Qiita

    はじめに この記事は「プログラミング技術の変化で得られた知見・苦労話【PR】パソナテック Advent Calendar 2020」のために書かれたものです。 僕は去年の11月から一念発起してRustの勉強を初めて趣味同人ゲームを開発しています。元々C++を4年程使っていて「C++最高、みんなC++使おう」とか友人に布教していました。しかし、C++プログラマは「一番自分たちの言語の批判に対して強くなる」と言われるほどC++はよくディスられます。もちろん僕も例外ではありませんでした(笑)。 一応僕もPythonを適当に使うようになってからC++のcppとhppを組み合わせるようなCの名残を感じるところや他言語と比べたときの標準ライブラリの貧弱さ、コードが冗長になりやすい点など使いにくいなあと思いはじめましていました。ですがPythonはあくまでも適当に使ってただけでしたし、一通り書けるJa

    C++からRustに移行して1年経って思ったこと - Qiita
    dpprkng
    dpprkng 2020/12/08
  • 管理者用初期化URLを踏んでWebサービスのデータをふっとばした話 - Qiita

    自己紹介 職のエンジニアではありませんが、ちょっとICT系に詳しそうなやつって感じで、部署のサーバ管理を任されたりもしています。 背景 私の(当時所属していた)部署では、毎年、数週間かけて前年の各人の業務実績をとりまとめて一つの冊子(PDF)にするという仕事があり、この作業を少しでも自動化するため、Webサービスが内製されました。当初は単純に各ユーザが自分の業務実績一覧をテキストで用意してアップロードするというものでしたが、秘伝のタレのように毎年少しずつ改良されたり、大幅に作り直されて別システムから業務データを取り込んでからブラウザ上で編集できるようになったりしつつ、なんやかんやあって私が引き継ぎます。他にやりたい人もなく、ひとり鯖管です。OSはCentOS6でした。 このシステムでは、毎年新しいデータを編集するため、その作業開始時にデータを初期化する必要があります。この作業も自動化し、

    管理者用初期化URLを踏んでWebサービスのデータをふっとばした話 - Qiita
    dpprkng
    dpprkng 2020/12/08
  • Linuxにおける非同期IOの実装について - Qiita

    はじめに Linux 5.1に新しい非同期IOの仕組みとしてio_uringがマージされてから既に1年以上経ってしまいましたが、これまでのLinuxにおける非同期IOの使い方や実装を見ていきながら、io_uringが登場した背景やLinux AIO(libaio)の問題点をどのように解決しているのかについてまとめました。アプリケーションの書き方については大まかにしか説明していないので、それについてはmanページや別の記事を参照してください。 またIOという範囲が広いのですが、ここではブロックデバイス上のファイルシステムにおける通常ファイルに対するread/writeについて考えています(ネットワークは考えていないのでepollの話はないです)。 前提知識 簡単に前提となる話をおさらいします。 同期IOと非同期IO IOを行うシステムコールとしてすぐに思いつくのはread(2)/write(

    Linuxにおける非同期IOの実装について - Qiita
    dpprkng
    dpprkng 2020/12/07
  • 今時のPythonはこう書く2020 - Qiita

    はじめに システム作ってるとかライブラリ作ってるみたいなある程度Pythonを綺麗に1書くことが求められる方々に向けた記事です。 (機械学習系のライブラリを使うためにPython書いてる方とか、初学者の方にはちょっとあわないかも知れません) 綺麗に書くための作法の難しさって共有が面倒なところだと思うんですよね。その書き方は間違いじゃない、間違いじゃないけどもっといい書き方があるぞみたいなやつってなかなか指摘し辛いですし、じゃあ1人に対してレビューしたら他のメンバーにはどう伝える?そもそも伝える必要?俺の工数は?みたいになりがちです。 一番いいのはこういう時はこう書く!みたいなドキュメントを作って「ドキュメント違反です」ってレビューをしてあげることなんですが、まーそれもそれで超面倒じゃないですか。なのでこの記事がそのドキュメントの代わり、とまではいかなくとも礎くらいになればいいなと思って書き

    今時のPythonはこう書く2020 - Qiita
    dpprkng
    dpprkng 2020/12/07
  • 本番環境でsudo yum updateしてサービスが動かなくなった - Qiita

    EC2 (Amazon Linux) Apache php7.1 私がやってしまったこと この事件が起きたのは2020年6月。既に稼働しているWebサービスでとあるデータ取得の処理が止まってしまっているので調査してほしいと頼まれました。また、サービスに影響が出るものだからなるべく早めに対処してほしいと言われました。 マネージャー 「今日の夕方までにはお願いね。もし難しそうだったら午後イチで一旦MTGしよう。14時までに連絡をください。」 わたし 「任せてください!」 ・・・・ とは言ったものの、番サーバーで起きている障害の調査は今までやったことがありませんでした(もちろん番サーバーにログインしたこともない)し、進め方も全く思いつきませんでした。しかも、対応するサービスの開発には携わったことがなく、sshログインの設定から行う次第でした。 まあ、今まで頼まれたタスクを期限内に終えられなか

    本番環境でsudo yum updateしてサービスが動かなくなった - Qiita
    dpprkng
    dpprkng 2020/12/02
  • Visual Studio Code - "Remote Development" を使って Docker Container on "Vagrant + VirtualBox" のファイルを編集する - Qiita

    $ rpm -qa kernel\* | sort kernel-3.10.0-1062.9.1.el7.x86_64 kernel-3.10.0-957.12.2.el7.x86_64 kernel-devel-3.10.0-1062.9.1.el7.x86_64 kernel-headers-3.10.0-1062.9.1.el7.x86_64 kernel-tools-3.10.0-1062.9.1.el7.x86_64 kernel-tools-libs-3.10.0-1062.9.1.el7.x86_64 Remote Development が実現すること 「ローカルPCのコードを修正して、それで十分?」 近年のソフトウェア開発の現状として、次のような傾向があります。 特定のコンテナやVMでのみでアプリケーションが動作する。 ローカルでは実現出来ない実行環境が多くある。 こうい

    Visual Studio Code - "Remote Development" を使って Docker Container on "Vagrant + VirtualBox" のファイルを編集する - Qiita
    dpprkng
    dpprkng 2020/11/22
  • Pythonで進捗表示したい! - Qiita

    概要 時間のかかる処理を実行した時、応答がないと「今どれくらい処理が進んでいるのか」「というか動いているのか」などなど、不安になることってありませんか?ありますよね?そう、あるんですよ(3段活用)。 ということでループ処理の進捗状況を表示する方法を覚書しておきます。 ↓↓↓ちなみにこんな感じです↓↓↓ 何かの役に立ちましたらぜひLGTM・ストック・コメントいただけると嬉しいです。 Vimmerはよければこちらもどうぞ見てってください↓ VimPython書きたい人へ 深層学習についても実装混じりでいろいろ書いてます(DNN〜CNNまで)↓ 深層学習入門 ~基礎編~ 目次 パッケージtqdmの利用 tqdmでネストループの進捗表示 自分で作ってみる エスケープシーケンス プログレスバーを作ってみる 発展:ANSIエスケープコード 20/11/17追記 パッケージtqdmの利用 進捗表示の王

    Pythonで進捗表示したい! - Qiita
    dpprkng
    dpprkng 2020/11/18
  • Windows10 WSL2にLinux居城を爆誕させる - Qiita

    ひどい……こういうことする気でしょう! するとどうなる? 知らんのか PowerShellすら不要になる 完 目次 WSLの中身は単純にUbuntu18.04の環境構築としても使えると思うんですけど (名推理) WSL2とUbuntu18.04LTSを整備する WSL2とUbuntu18.04LTSのインストール (前提) 日語化する パッケージ (管理ツール)を最新化しておく WSL2のPATHからWindowsパスを抜く Vimをクリップボードに対応させる デフォルトのPythonバージョンを3にする 開発用ディレクトリはWSLファイルシステム内にしておく WSL2が使えるメモリ量を制限する IPv6を無効化する Windows側からWSL2内のサーバに localhostで接続できるようにする WSL2内のサーバにlocalhostで接続できない問題が起きたら ALSAを使っている

    Windows10 WSL2にLinux居城を爆誕させる - Qiita
    dpprkng
    dpprkng 2020/11/14
  • Windows Terminal で WSL を開くときに開始されるディレクトリを $HOME にする - Qiita

    やりたかったこと Windows Terminal で、 WSL を開くと C:\Windows\system32 (/mnt/c/WINDOWS/System32) が開始ディレクトリになっている。これを $HOME に変更したい。 やったこと wsl.exe のパラメーターで指定した。 "commandline" : "wsl.exe ~ -d Ubuntu-18.04", 至るまでの過程 profile.json にて 各種 profile の項目がある。 { "globals" : { }, "profile" : [ { "commandline" : "powershell.exe", "startingDirectory" : "%USERPROFILE%" }, { "commandline" : "cmd.exe", "startingDirectory" : "%USE

    Windows Terminal で WSL を開くときに開始されるディレクトリを $HOME にする - Qiita
    dpprkng
    dpprkng 2020/11/13
  • CentOSにSSH接続してみる!VirtualBoxのNATとホストオンリーアダプターによるネットワーク設定のベストプラクティス!〜安全かつ快適な開発ができるようにする〜 - Qiita

    CentOSにSSH接続してみる!VirtualBoxのNATとホストオンリーアダプターによるネットワーク設定のベストプラクティス!〜安全かつ快適な開発ができるようにする〜CentOSSSHVirtualBoxnatホストオンリーアダプター はじめに VirtualBoxでCentOSの環境を作ってみた系の記事がたくさん上がっていますが、よく目にするのはとりあえず「ブリッジアダプター」にしよう。みたいな設定です。確かに、この設定にすることで外部ネットワーク、仮想マシン同士、ホストOSとゲストOS間の双方向接続全てが可能になります。 しかし、このままだとセキュリティ的によろしくないです。なぜなら、ブリッジアダプターではゲストOSのネットワークはホストOSと同じネットワークに繋がってしまい、そのネットワークにいる他のPCからもゲストOSにアクセスできてしまうからです。 そこで、セキュリティを保

    CentOSにSSH接続してみる!VirtualBoxのNATとホストオンリーアダプターによるネットワーク設定のベストプラクティス!〜安全かつ快適な開発ができるようにする〜 - Qiita
    dpprkng
    dpprkng 2020/11/12
  • Windows10上のVirtualBoxにCentOS8.1をインストール - Qiita

    概要 自宅で簡単に複数のLinux(CentOS, CentOS, CentOS ...)を切り替えて使用したい。 会社にはESXiとかあるけど、自宅にはWindows10しかない。 そんな人のために、(既にたくさん情報があるのを承知の上で)Windows10上で稼働するVirtualBoxにCentOSをインストールした記録を残しておきました。 Windows10のVirtualBoxインストール手順はこちら VirtualBox CentOSのサイトには、日語のリリースノートも用意されているので、参考になる。 https://wiki.centos.org/ja/Manuals/ReleaseNotes/CentOS8.1911 RedHatLinuxをVirtualBoxにインストールする際の注意事項も参照するべき。 https://developers.redhat.com/rh

    Windows10上のVirtualBoxにCentOS8.1をインストール - Qiita
    dpprkng
    dpprkng 2020/11/11
  • WSL2でLinux開発環境を構築する - Qiita

    はじめに WindowsWSL2を使ったLinux開発環境を構築してみる。(所要時間: 60分) 追記: 2021/12/18 WSL2がコマンド一発で入れられるようになったり、Windows Terminalの設定画面がGUIになったりしたので、古い手順を一新した。 修正: 2024/04/18 GPGキーのインポートでapt-key は非推奨になったため、代替の手段に修正。 必要環境 Windows 10 Version 1903 (OS Build 18362.1049以降) Version 1909 (OS Build 18363.1049以降) Version 2004以降 Windows 11 1. WSL2 環境のセットアップ WSL の詳細は Microsoft の公式ドキュメントを参照。 管理者権限でPowerShellを起動して以下のコマンドを実行する。 PCの再起

    WSL2でLinux開発環境を構築する - Qiita
    dpprkng
    dpprkng 2020/11/10