タグ

ブックマーク / qiita.com (1,100)

  • 【論文読解】NeRF in the Wild: Neural Radiance Fields for Unconstrained Photo Collections - Qiita

    【論文読解】NeRF in the Wild: Neural Radiance Fields for Unconstrained Photo CollectionsDeepLearning 概要 画像集合をもとに新しい視点からの画像を合成する技術であるNeRF in the Wild(NeRF-W)について紹介します。 例えば、Photo Tourism Datasetには、ある特定のランドマークを様々な位置から撮影した写真が多数含まれています。そのような画像集合から、ランドマークの3次元的な形状を把握し、写真集合には含まれない新しい視点から見たときの合成画像を作成することができる、というのが目的となります。新しい視点からの合成結果をつなぎ合わせると、公式のプロジェクトページ内にあるような動画も生成することができます。 先行手法として、もともと提案されていたNeRF1という手法がありました

    【論文読解】NeRF in the Wild: Neural Radiance Fields for Unconstrained Photo Collections - Qiita
    rydot
    rydot 2021/11/24
  • デザインスキル皆無の理系が数学的アプローチで見栄えのする交通量調査サービスのチラシを作るのに苦労した - Qiita

    「チラシ?そんなのデザイナーに頼めばカンタンにできるんじゃないの?」と思っていた私(理系・デザインスキルゼロ)が、デザイナーとバトルを繰り広げた挙句にあきらめて自分でデザインした話です。意外と数学的というか、理詰めでデザインすることができたので得られたノウハウをシェアしたいと思いこの記事を書きました。実際に完成した(入稿用データの)PDFファイルはこちらです。 サマリー ・なぜチラシが必要なのか? ・デザイナーといっても得意・不得意がある ・レイアウトのデザインステップ ・チラシのパラメータシート ・まとめ なぜチラシが必要なのか? 国土交通省が5年に1度行っている「全国道路・街路交通情勢調査」で、これまで道路際でカウンターボタンをカチカチやっていた調査員による「人手による調査」が2021年秋から廃止されちゃいました。AIによる映像解析に置き換えるみたいです。そこで「人手による交通量調査を

    デザインスキル皆無の理系が数学的アプローチで見栄えのする交通量調査サービスのチラシを作るのに苦労した - Qiita
    rydot
    rydot 2021/11/22
  • Rustで関数オーバーロードは頑張れるのか - Qiita

    この記事で扱うこと Rustには関数オーバーロード機能がありません。(演算子オーバーロードはあります。) C++などで関数オーバーロードを使いまくっていた人がRustを使い始める場合、どうすればいいでしょうか? 結論から先に書くと 頑張れば(トレイトを活用すると)Rustで関数オーバーロードを実質的に再現することはある程度可能 関数オーバーロード記法自体を再現してくれるクレートも存在する(が、無理やりなので非推奨) そもそもRustでは関数オーバーロードではなくトレイトを活用することが想定されている Rustにはコンストラクタが無いのでコンストラクタのオーバーロードも無く、関数名を書き分けることが推奨されている C++のテンプレート関数における特殊化と同等の機能はRustのトレイトでは発展途上(nightlyで一部サポート) C++SFINAEやC++20のコンセプト (concepts

    Rustで関数オーバーロードは頑張れるのか - Qiita
    rydot
    rydot 2021/11/21
  • シェルスクリプトは変数代入で = の前後にスペースを置けない!・・・の本当の理由を知ると優れた文法が見えてくる - Qiita

    シェルスクリプトは変数代入で = の前後にスペースを置けない!・・・の当の理由を知ると優れた文法が見えてくるShellScriptBashUNIXshellPOSIX はじめに シェルスクリプトの変数代入で = の前後にスペースを置くことができない理由は、検索すれば「プログラマーの君! 勘違いするな! シェルスクリプトでは読みやすさのためにスペースを置くな!! という話」のような記事がすぐに見つかります。記事に書いてあるとおり変数代入とコマンド呼び出しと区別がつかないからです。それは間違いではないんですが、私はもう少し説明が足りないと感じています。そこで今回は = の前後にスペースを置けない当の理由を解説したいと思います。 の前に皆さんにはこの話を読みながら、自分がシェルスクリプトの言語設計者だったとしたら、どういう言語仕様にするかを考えて欲しいです。なぜかと言うとシェルスクリプトの文

    シェルスクリプトは変数代入で = の前後にスペースを置けない!・・・の本当の理由を知ると優れた文法が見えてくる - Qiita
    rydot
    rydot 2021/11/17
  • 【VSCode】Undo/Redoに革命を起こしたい - Qiita

    この記事は、東京大学工学部電子情報工学科/電気電子工学科の後期実験「大規模ソフトウェアを手探る」のレポートとして作成されました。 Undo/Redo の履歴が消える悲しみ 編集系のソフトウェアで誰もがお世話になっているであろう Undo/Redo 機能ですが、このような悲しみに襲われたことはないでしょうか? 「以前の状態に戻したいのに、履歴が消えて戻せない〜〜〜」 講義室でアンケートを取ったところ、8 割以上の方がこの悲しみを経験されていたようです。 といっても、ピンとこない方がいると思うので、具体的にどういう問題があるのか説明していきます。 テキストエディタを例にとります。まず、操作 A, B, C を行います。ここでいう「操作」は、文字列の入力や Back space など、Undo/Redo 以外でエディタの編集状態を変えるものを指します。 続いて Undo を行います。 続いて操作

    【VSCode】Undo/Redoに革命を起こしたい - Qiita
    rydot
    rydot 2021/11/17
  • PyTorchでの学習・推論を高速化するコツ集 - Qiita

    記事では、NVIDIAから発表されているPyTorchでのディープラーニングを高速化するコツ集を紹介します。 【※NEW】22年6月新記事:スクラム関連の研修・資格のまとめ & おすすめの研修受講方法 記事について 記事は、NVIDIAのArun Mallyaさんの発表、 「PyTorch Performance Tuning Guide - Szymon Migacz, NVIDIA」 に、説明やプログラムを追加して、解説します。 記事のポイントは、Andrej KarpathyがTwitterで呟いている通りとなります。 good quick tutorial on optimizing your PyTorch code ⏲️: https://t.co/7CIDWfrI0J quick summary: pic.twitter.com/6J1SJcWJsl — Andrej

    PyTorchでの学習・推論を高速化するコツ集 - Qiita
    rydot
    rydot 2021/11/11
  • Rust のデバッグチートシート - Qiita

    Rust Debugging Cheatsheet 開発の基 エディタ VSCode + rust-analyzer - https://marketplace.visualstudio.com/items?itemName=matklad.rust-analyzer 推奨 neovim + vim-lsp-settings - https://github.com/mattn/vim-lsp-settings lsp の最低限の機能が使える neovim + coc - https://github.com/fannheyward/coc-rust-analyzer 構造に対する置換などの rust-analyzer 固有の機能が使える rust-analyzer ガイド - https://rust-analyzer.github.io/manual.html#structural-

    Rust のデバッグチートシート - Qiita
    rydot
    rydot 2021/11/10
    “_ :()”
  • プログラミングで一番難しいのは「見積もり」だと思う - Qiita

    前書き プログラミングで一番難しいところの一つは、「見積もり」だと私は思う。人から頼まれてプログラミングをする時、必ず最初に聞かれるのが「だいたいどれくらいで終わるか?」だ。厳しいところだと「何日に納品してくれるのか?」を問われる(むしろこれが普通かもしれない)。まっさらな状況から過去の経験を総動員してかかる時間を予想したり、可能な限りタスクに分解して時間を見積ったりするが、いつも不安に駆られる。多くの人も、見積もりに対して困難と不安を感じているのではないかと思われる。見積もりに対する自分の知識と経験を話して他の人にも参考にしてもらいたいと思って記事を書いた。 見積もりという言葉には色々な意味を含むが、今回の記事では「プロダクトをリリースするまでの期間の見積もり」から「頼まれた一つの機能の完成させるための期間の見積もり」までのスコープで話をしたい。 なぜ見積もりをしないといけないのか? 見

    プログラミングで一番難しいのは「見積もり」だと思う - Qiita
    rydot
    rydot 2021/11/10
  • Rust初心者殺しの文法10選 - Qiita

    概要 この記事ではRust初心者が驚いたり混乱させられたりするようなRustの文法を10項目集めてみました。 これらの項目は知らないと理解できなかったりコンパイルエラーに悩まされたりする一見厄介なものたちなのですが、そのような直感的でない挙動を敢えてさせているところには重要な意味が込められていることが多いです。 そのため、これらの項目を通してRustが目指しているものや実現したい機能の一部を垣間見ることができると思います。 1. デフォルトの代入がムーブ Rustの最大の特徴が所有権の概念であることは有名ですが、それでもなお初心者殺しになるのがムーブです。 以下のコードがコンパイルエラーになるメジャーな言語は現状Rustくらいしか無いでしょう。 let mut a = vec![1, 2, 3]; let mut b = a; // ここでaの持つベクタの所有権がbにムーブされ、aは無効に

    Rust初心者殺しの文法10選 - Qiita
    rydot
    rydot 2021/11/10
  • LambdaNetworks: ConvでもAttentionでもない構造で、精度が良くて小さくてEfficientNetの4.5倍速で学習できるネットワーク考えたよと主張する論文の紹介 - Qiita

    LambdaNetworks: ConvでもAttentionでもない構造で、精度が良くて小さくてEfficientNetの4.5倍速で学習できるネットワーク考えたよと主張する論文の紹介機械学習画像認識DNNAttentionLambdaNetworks 概要 ちょっと前に「画像認識でもConvolutionの代わりにAttentionが使われ始めたので、論文まとめ」という記事を書いたわりに、すでにAttentionでもなくてConvでもないけどImageNetでSOTA取ったぜっていう、新しい構造探索系の論文がICLRに出た。この頃、ちょっとバズっているので、概要をまとめてみたいと思う。 Lambda層という遠くまで見られるけど、軽いのを考えたよってのが、ポイントらしい。 LambdaNetworks: Modeling long-range Interactions without A

    LambdaNetworks: ConvでもAttentionでもない構造で、精度が良くて小さくてEfficientNetの4.5倍速で学習できるネットワーク考えたよと主張する論文の紹介 - Qiita
    rydot
    rydot 2021/11/03
  • 「DI使うとインタフェース地獄に陥るらしいから使いたくない」と言っていたA氏がインタフェースを使わずにDIで幸せになるまで - Qiita

    「DI使うとインタフェース地獄に陥るらしいから使いたくない」と言っていたA氏がインタフェースを使わずにDIで幸せになるまでC#DIDependencyInjection依存性の注入 DIはインタフェース定義しなくても十分実用的だし、むしろそっちの方が質だよ、という話をします。C#や.NETを使っていますが、それに限らず普遍的な内容です。 インタフェースと実装に分けるとか無理。DIなど不要! 中堅社員のA氏は、「DIっていちいち実装とインタフェース分けないとダメなんでしょ?。さすがにやってられんわ」と言って頑なにDIを導入しようとしません。 DIはテスタビリティと併せて語られることが多かった為か、A氏は「注入するクラスは基的にインタフェース定義しましょう」という記事ばかりを読んでいたのです。 インタフェースと実装を分けるとは、例えば次のような事です。 services.AddScoped

    「DI使うとインタフェース地獄に陥るらしいから使いたくない」と言っていたA氏がインタフェースを使わずにDIで幸せになるまで - Qiita
    rydot
    rydot 2021/10/20
  • PyTorchで学ぶGraph Convolutional Networks - Qiita

    ツイッターで人工知能のことや他媒体で書いている記事など を紹介していますので、人工知能のことをもっと知りたい方などは気軽にフォローしてください! この記事では近年グラフ構造をうまくベクトル化(埋め込み)できるニューラルネットワークとして、急速に注目されているGCNとGCNを簡単に使用できるライブラリPyTorch Geometricについて説明する。応用分野は生物学から、渋滞予測、レコメンダーシステムまで幅広い。 記事はGCN生みの親のブログ記事とPyTorch Geometricの公式チュートリアルをかなり参考にしております。 読んで少しでも何か学べたと思えたら 「いいね」 や 「コメント」 をもらえるとこれからの励みになります!よろしくお願いします! 1. Graph Convolutional Networksとは? 1.1 そもそもグラフとは? ノードとエッジで定義される。折れ線

    PyTorchで学ぶGraph Convolutional Networks - Qiita
    rydot
    rydot 2021/10/12
  • Pythonではじめる逆強化学習 - Qiita

    1. はじめに 記事ではこの論文で提案されている逆強化学習の基礎的な手法であるMaximum Entropy IRLを解説していきます。逆強化学習は強化学習をベースにしており、理解するためには強化学習の基礎知識が必要です。強化学習の基礎部分に不安がある方は、必要な基礎知識を前の記事でまとめましたのでよろしければそちらをご覧ください。 2. 逆強化学習とは 逆強化学習の目的は、優秀なエージェント(エキスパート)の行動軌跡$\zeta$から、報酬関数$R(s)$を求めることです。エキスパートはあるタスクを達成できるエージェントです。行動軌跡とは、エキスパートの一連の行動を表す状態と行動のペアの系列のことです。式で次のように表すことができます。 $$ \zeta = \{(s_1,a_1),(s_2,a_2),\cdots,(s_t,a_t),\cdots,(s_T,a_T)\} $$ $s$

    Pythonではじめる逆強化学習 - Qiita
    rydot
    rydot 2021/10/06
  • Gilbert Strang先生から学んだ線形代数 - Qiita

    これは何か? このシリーズでは、Gilbert Strang 先生の Linear Algebra Vision 2020 を元に、線形代数の直感的理解を得るための「目から鱗」の話題を紹介したいと思います。 Gilbert Strang 先生は MIT の有名な(名物)線形代数の先生です。OpenCourseware で無償で先生の講義をみることができます。これが、とっても楽しいです。定理の証明を追うようなスタイルでなく、具体的な数で手を動かしながら、どんどん、直感的理解が進みます。ほんと、目から鱗です。まるで、古典落語を鑑賞するような感覚で何度も見ることができるクラシックです。 その他、有名な著作がいくつもあり、インタビュー動画等もあります。 先生の線形代数の 『ストラング:教養の線形代数』 日語版が出ました(2023/2/11)。 表紙の $A=CR$ の意味、解説はこちらに。(→

    Gilbert Strang先生から学んだ線形代数 - Qiita
    rydot
    rydot 2021/10/03
  • 形式検証の視点から再確認したいMaybe型/Option型からnull許容データベースへのデータ変換 - Qiita

    はじめに 記事は第一回関数型プログラミング(仮)の会における発表内容の詳細です。 関数型言語において、Maybe/Option型データを外部データベースに保存する際やJSONに変換する際、NULL許容データに変換して扱われることが多いです。 しかしながら、Maybe/Option型とNULL許容データは細かい点で異なるため、注意してデータ変換を実装しないと思わぬバグを生むことになります。 そこで記事では、Maybe/Option型をNULL許容データに変換することに対して、形式検証の視点から考察していきます。 また、Haskellによる実装例もありますので、コードを確認したい方はそちらも参考にしていただけると幸いです。 形式検証による視点 形式検証を考える際に必要なのは、プログラムの仕様を論理式で形式的に記述することです。 今回は、まずデータ変換自体の数学的なモデルを考えて、その後、H

    形式検証の視点から再確認したいMaybe型/Option型からnull許容データベースへのデータ変換 - Qiita
    rydot
    rydot 2021/10/01
  • 「あれ、プログラミングが楽しくない…」【すべてのエンジニアへ】 - Qiita

    経緯 ストーリー形式で長々と書いているため、結論だけ知りたい人は「僕はここに居てもいいんだ!!!」へどうぞ。 プログラミングが楽しくなくなった日 ある日、Javaの勉強中にふと思った 「これ、なんの役に立つんだ?」 私は、三年間Cをやっていて、PythonJavaScriptをかじったことがある。 今までに「Twitter絵師探索」や「トイレットペーパー管理システム」、「クソ雑魚AI付きオセロ」に「ブロック崩し(PICマイコン)」などを作ってきた。 お世辞にもプログラマーと言えるレベルではないが、ちょっとしたミニアプリくらいなら作れる程度だ。 しかし、私の技術不足と人脈不足で「これは誰かに貢献したぞ!」というものはない。 そこで、ひとつの疑問が浮かぶのだ 「あれ?プログラミングしても意味なくない?」 幼い日の僕 私が最初にプログラミングのようなものを始めたのは「部員成績記録Excel

    「あれ、プログラミングが楽しくない…」【すべてのエンジニアへ】 - Qiita
    rydot
    rydot 2021/09/22
  • 中国剰余定理 (CRT) の解説と、それを用いる問題のまとめ - Qiita

    はじめに NTT データ数理システムでアルゴリズムの探求をしている大槻 (通称、けんちょん) です。最近のマイブームなアルゴリズムは NTT (Number-Theoretic Transform) です。 NTT は FFT (高速フーリエ変換) の亜種です。日語では高速剰余変換と呼ばれることが多いです。FFT ではどうしても登場しがちな「計算途中での丸め誤差」を回避するテクニックとして有効です。NTT を実運用する際には以下のような楽しい初等整数論的トピックたちを使用することになってすごく面白いです。 ${\rm mod}. p$ の原始根 ($p$ は素数) 中国剰余定理 (Chinese Remainder Theorem) 今回はこのうちの中国剰余定理 (中国人剰余定理や中国式剰余定理や中国風剰余定理とも) について特集します。中国剰余定理もそれ自体、整数論的アルゴリズムや組合

    中国剰余定理 (CRT) の解説と、それを用いる問題のまとめ - Qiita
    rydot
    rydot 2021/09/22
  • 3Dプリンタで斜めの平面や曲面を滑らかに印刷するNon-planar slicing - Qiita

    何ができる? 記事は、3Dプリンタで斜めの平面や曲面を滑らかに印刷できるようにする方法を紹介します。 といっても3Dプリンタを大きく改造するわけではなく、ソフトウェアによって実現します。 Non-planar slicingとは? FDM方式の3Dプリンタ(フィラメントに熱を加えて積層することで印刷する一般的なタイプの3Dプリンタ)を使用したことのある方ならわかると思いますが、FDM方式の3Dプリンタで斜めの面や曲面を持つ形状を印刷すると、その表面がギザギザとした階段状になってしまいます。特に傾きが緩やかな場合には、ギザギザが目立ちます。 これにはスライシングという工程が関係しています。3Dプリンタは3Dデータを印刷しますが、3Dプリンタは3Dデータそのものではなくツールパス等を含むG-codeと呼ばれるデータを読みます。3DデータからG-codeデータに変換する工程をスライシングといい

    3Dプリンタで斜めの平面や曲面を滑らかに印刷するNon-planar slicing - Qiita
    rydot
    rydot 2021/09/14
  • 逆強化学習を理解する - Qiita

    逆強化学習 一般的な強化学習では、エージェントが環境からの報酬を得ることで最適な行動を獲得します。しかし現実の問題においては、この報酬を設計することが困難な場合があります。 例えば運転技術を獲得する場合、うまい運転というのはただ目的地に速く着くだけでなく、急発進・急ブレーキしない、混んでなさそうな道を選ぶなど実際の報酬関数として考慮しづらい要素が存在します。 逆強化学習ではエキスパートによる行動から報酬を推定する ことによって、このような表現しにくい報酬を求めることができます。 逆強化学習の手法 この記事では逆強化学習の手法としてよく取り上げられる手法の中で以下の3つについて解説したいと思います。 線形計画法を用いた逆強化学習 Maximum Entropy IRL Maximum Entropy Deep IRL マルコフ決定過程(MDP) 逆強化学習に入る前にまずMDPについて説明しま

    逆強化学習を理解する - Qiita
    rydot
    rydot 2021/09/13
  • パソコンユーザーのためのDRAM入門 Part 1 パソコンにおけるDRAM、DRAMの構造 - Qiita

    序 : プロセッサへの嫉妬 DRAMさん「最近みんなCPUGPUにばかりうつつを抜かしやがって…。みんながやれRyz○nだの、FinFET ○nmだの盛り上がって、みんなが次世代プロセッサを楽しみにしている。新しいアーキテクチャやISAが出てきて話題も絶えない。」 DRAMさん「たしかによ…CPUはパソコンの花形だし、GPUの性能上げればゲームのグラフィックスがきれいになるよ。それに比べると俺は目立たない。」 DRAMさん「挙句の果てに、Memory wallだなんて言われて、CPUGPUの足を引っ張る存在だと疎まれている。」 DRAMさん「だけど…だけど…俺がいなかったらパソコンは動かない…!それに、俺だって頑張ってる!お腹にviaを貫通させたりして、CPUGPUの足を引っ張らないようにしている!」 DRAMさん「だから…だから…俺を…DRAMを…見てくれ…!!!」 対象読者 DR

    パソコンユーザーのためのDRAM入門 Part 1 パソコンにおけるDRAM、DRAMの構造 - Qiita
    rydot
    rydot 2021/09/08