タグ

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

  • 世界に衝撃を与えた画像生成AI「Stable Diffusion」を徹底解説! - Qiita

    追記: U-Netの中間層は常にSelf-Attentionとなります。ご指摘いただきました。ありがとうございます。(コード) オミータです。ツイッターで人工知能のことや他媒体の記事など を紹介しています。 @omiita_atiimoもご覧ください! 世界に衝撃を与えた画像生成AI「Stable Diffusion」を徹底解説! 未来都市にたたずむサンタクロース(Stable Diffusionで生成) 2022年8月、世界に大きな衝撃が走りました。それは、Stable Diffusionの公開です。Stable Diffusionは、テキストを受け取るとそれに沿った画像を出力してくれるモデルです1。Stable Diffsuionは10億個近いパラメータ数をもち、およそ20億個の画像とテキストのペア(LAION-2B)で学習されています。これにより、Stable Diffusionは入

    世界に衝撃を与えた画像生成AI「Stable Diffusion」を徹底解説! - Qiita
  • AlphaTensor :強化学習を利用した高速な行列積演算アルゴリズムの発見 - Qiita

    1. はじめに 記事では、2022年10月にNatureに掲載されたAlphaTensor[1]および関連分野を紹介します。AlphaTensorは「AIが行列積演算の新しいアルゴリズムを発見した」といううたい文句のもとSNSを中心に大きな話題となりました。具体的には、[1]でAIが”発見”したアルゴリズムのひとつでは2進数上の4×4の行列の積を47回の掛け算で計算することができ、これは[1]以前の最速49回(Strassenのアルゴリズム)を上回ったことになります。なお、Strassenのアルゴリズムの49回はその発見から[1]まで約50年間破られていませんでした。 「AIが新しいアルゴリズムを発見した」という広告ですが、実際は 「あるテンソルのよい分解方法を強化学習を利用して探索した」 といった方が正しいです。この 「あるテンソル」はその分解方法と「行列積のアルゴリズム」が自然と対応

    AlphaTensor :強化学習を利用した高速な行列積演算アルゴリズムの発見 - Qiita
  • C++20コンセプト時代のエラーメッセージとの付き合い方 - Qiita

    はじめに C++プログラミングにコンパイルエラーは付き物です。コンパイラからのメッセージに頼らずに、正しいC++プログラムを書き上げることなど不可能です。(ここでは脳内C++コンパイラ搭載型超人の存在は無視します:D) C++標準ライブラリは便利なアルゴリズムを数多く提供しており(通称 "STL")、大部分のC++プログラマはその恩恵を受けています。しかしSTLを駆使したコードのコンパイルエラーは、時として長大で難解なメッセージを出力することがあります。 この記事ではソートアルゴリズムsortを題材にして、現状(C++17)エラーメッセージの問題点を確認し、きたるC++20時代のエラーメッセージを読み解いていきます。 C++17時代のエラーメッセージ 下記ソースコード片をコンパイルすると、どんなエラーメッセージが出力されるでしょう? 注:このコードはコンパイルに失敗します。 #includ

    C++20コンセプト時代のエラーメッセージとの付き合い方 - Qiita
    quick_past
    quick_past 2022/07/25
    ジェネリック(テンプレート)をマクロでやらせたのがC++の敗因。デバッグしにくいったらない。シンプルの真逆を行ったのがC++。エラーログも吐きそうなくらいわけわからんし嫌い
  • オープンソースプログラミング言語zigまとめ - Qiita

    WebAssemblyのモジュール記述のためのプログラミング言語を調べていると、比較的新しいオープンソースのプログラミング言語zigWebAssemblyモジュールを書くのに適している感じだったので、ソースコードを書いて動かしながら調べたことについて、コードに出ている順で並べています。 この文章中で用いているソースコードはmacOSlinux上でビルド可能な状態で以下のURLにおいてあります: https://gist.github.com/bellbind/3c52ea6e506656701c9b7ff00a8599fa Qiitaは現時点でzigコードのシンタックスハイライトに未対応であり視認性がよくないですが、githubではzigコードでもシンタックスハイライトされます。 0. プログラミング言語zigについて オープンソースのプログラミング言語zigは、以下のURLで公開され

    オープンソースプログラミング言語zigまとめ - Qiita
  • シェルスクリプトは変数代入で = の前後にスペースを置けない!・・・の本当の理由を知ると優れた文法が見えてくる - Qiita

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

    シェルスクリプトは変数代入で = の前後にスペースを置けない!・・・の本当の理由を知ると優れた文法が見えてくる - Qiita
  • PowerShellで環境変数を再読込する - Qiita

    環境変数、主にPATHを追加、更新したときにOSを再起動せずにコマンドを使用したいときなんかに便利です $env:Path = [System.Environment]::GetEnvironmentVariable("Path","Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path","User")

    PowerShellで環境変数を再読込する - Qiita
  • 真の UNIX 標準規格 System V Interface Definition (SVID) について - Qiita

    はじめに POSIX のコマンド一覧を見てやけに少ないなと思ったことはないでしょうか?例えば useradd がないのでユーザーが作れませんしcrontab はあるのに cron がないと中途半端です。重要なものがいくつも欠けおり、あれだけのコマンドでは到底 Unix を使うことができません。実は「Unix に実装すべき最低限の仕様」を定義した標準規格は他にありました。それが UNIX をこの世に生み出した AT&T 自身による標準規格 System V Interface Definition (SVID) です。この記事は POSIX に敗れて消えてしまったもう一つの UNIX 標準規格 SVID ・・・のコマンドの話です。(私の知識不足により C 言語インターフェースの話は含まれません。) SVID と POSIX の歴史 SVID は POSIX よりも早く標準規格を発表しています

    真の UNIX 標準規格 System V Interface Definition (SVID) について - Qiita
    quick_past
    quick_past 2022/05/08
    コメントがすごい。あと、POSIXはWindowsNTも(アメリカ政府の要求を満たすためだけに)実装されていたので、POSIX=Unixではないよね
  • 令和版: 依存関係逆転の法則の実現方法 - Qiita

    依存関係逆転の法則とは コアのロジックが実装の詳細に依存しないようにして、モジュール間を疎結合にしましょうという原則。 Wikipediaでは以下のように説明されている。 上位モジュールはいかなるものも下位モジュールから持ち込んではならない。双方とも抽象(例としてインターフェース)に依存するべきである。 "High-level modules should not import anything from low-level modules. Both should depend on abstractions (e.g., interfaces)." 抽象は詳細に依存してはならない。詳細(具象的な実装内容)が抽象に依存するべきである。 "Abstractions should not depend on details. Details (concrete implementations

    令和版: 依存関係逆転の法則の実現方法 - Qiita
  • Apple Silicon M1 でtensorflow-macosを実行したらめちゃくちゃ速かった。 - Qiita

    Apple Silicon M1 でtensorflow-macosを実行したらめちゃくちゃ速かった。MacDeepLearningAppleTensorFlowAppleSilicon はじめに Macbook Air (AppleSilicon, M1)を購入しました。 Appleが設計したM1は下馬評以上の性能を叩き出し、とても盛り上がっていますね。 M1のハードウェアとしての魅力はもちろんすごいですが、M1に合わせた各種ソフトウェアの最適化も魅力的です。 AppleがTensorflowをフォークしてM1で最高のパフォーマンスを発揮するように最適化したコード(tensorflow-macos)を公開しています。 https://github.com/apple/tensorflow_macos#requirements tensorflowのブログ記事でパフォーマンスが比較されてい

    Apple Silicon M1 でtensorflow-macosを実行したらめちゃくちゃ速かった。 - Qiita
  • Apple Silicon M1 は自然言語処理も、ちょっと速いよ - Qiita

    まとめ GRUが使えないこと、LSTMを使う際にもちょっとした制約があることなど、Apple M1で自然言語処理を効率的に動かすには細かい調整が必要でこれまで使っていたコードをそのままとはいかず、格的に使うにはまだちょっと手を出しづらい感じですね。 ただし、新しい Apple M1 の実力は、最適化が効かない状態でも、5年前のIntel Mac搭載のMBPの2倍近く高速で、調整を行うことで、さらに3倍くらいは速くできそうです。 Google Colabで使える速いGPUには全く及ばないのですが、10万円前後で買える機械としてはまずまずの性能といえそうです。 荒削りのライブラリを読み解いていくのが楽しいような人にとっては、Google ColabGPU無料枠を使い切った時間なんかに良いのではないでしょうか(^^; (付録) ソースコード全体 今回の実験を行った、LSTMモドキ版の実行可能

    Apple Silicon M1 は自然言語処理も、ちょっと速いよ - Qiita
  • MPEG-5 EVCコーデックメモ - Qiita

    https://mpeg.chiariglione.org/standards/mpeg-5/essential-video-coding 正式名称「MPEG-5 Part 1 Essential Video Coding」 ISO/IEC 23094-1 Essential video coding 特許問題により普及しないH.265/HEVCコーデックの代替を狙った、ライセンス・フレンドリ(licensing-friendly)な動画像コーデック。 目的 ロイヤリティフリー(RF; Royalty-Free)な枯れた技術1のみを用いる Baseline Profile と、特許技術を用いてより高効率を目指す Main Profile という2オプションを提供する。 ロイヤリティフリー・コーデック運用ができるよう、任意の Main Profile 向け符号化ツールは選択的に無効化可能。

    MPEG-5 EVCコーデックメモ - Qiita
  • Perl のグローバル変数やレキシカル変数について - Qiita

    Perl にはいくつかの変数宣言があります。 my our local state my による変数宣言は多くの書籍で解説されていておなじみのものですが、それ以外の変数宣言の意味がイマイチわからないという声も聞きます。というわけで、ざっとまとめてみました。 use strict が無かった時代 モダンな Perl では、use strict を書いた上で、使用する変数は my を使って宣言をするということが常識となりました。 とはいえ太古の昔は use strict もなく、変数も宣言することなく使用していました。いわゆるグローバル変数だけの世界です。 まさに原始的なシェルスクリプトの世界に近いですが、今では好ましい書き方とはされません。スコープを狭めたり、初出の変数であることを明示したりといったことを my で行うことが好ましいとされています。Perl も例に漏れず、プログラミング言語で

    Perl のグローバル変数やレキシカル変数について - Qiita
  • 小学校で始まった「プログラミング教育」を改めて考える - Qiita

    この記事について 自分の子供にプログラミング教育をさせるために色々と調べて実践した記録です。 家族情報 ぼく:3x歳。子持ち。 娘氏:現在小学2年生。 前置き:プログラミング教育とは まず、前提として小学校で始めるプログラミング教育とは、「プログラマーを育てる」わけではないということに留意します。 あくまでも、問題を解決する上で大切である「基礎的な考える力」を養うことが目的です。 Hello Worldを表示したり、電子回路でLチカすることはゴールでもなければ通過点ですらありません。 問題の定義やゴールを理解し、そこに対してどのような理論で展開すれば辿り着けるのかを考える力をつける ことが目的ですので、ざっくりというと「論理的思考」を育てることになります。 論理的に考えさせればいいので、プログラミング教育はデジタルを使う必要はなく、 なんならトランプみたいなカードを使っても教育はできます

    小学校で始まった「プログラミング教育」を改めて考える - Qiita
    quick_past
    quick_past 2021/12/27
    そもそもプログラミングって特殊技能だと思うし、他の教科をさしおいて、義務教育で教えるべきものなのかなあ。それよりデジタルガジェットをノートや鉛筆のように日用の媒体として、当たり前に活用する能力のほうが
  • 「関数型プログラミングが『銀の弾丸』であるという非常識な常識2022」の感想 - Qiita

    Ken Okabe氏による 関数型プログラミングが『銀の弾丸』であるという非常識な常識2022 https://kentutorialbook.github.io/functionalprogramming2022/ の率直な感想を書いていきます。 「【追記】」の部分はTwitterでの他の人の反応や氏のはてなブログによる反論を受けて記載したものです。 JavaScriptで演算子オーバーロードを実現しようとするのは筋が悪い 氏は二項演算子に拘っておられますが、JavaScriptにはユーザー定義可能な演算子オーバーロードはないのだから、JavaScriptに適したやり方(関数・メソッド)を使うか、演算子オーバーロードに適した言語(特にStandard ML, OCaml, Haskellなどはユーザー定義の演算子を書けます)を使うべきだと思います。 【追記】もちろんC++Rustでも演

    「関数型プログラミングが『銀の弾丸』であるという非常識な常識2022」の感想 - Qiita
    quick_past
    quick_past 2021/12/16
    あの人なんであんなに関数型に命かけてんだろうなあ。そのわりに他のパラダイムも、関数型に関してさえも、理解ができてない。書籍も出版するくらいだから、編集の目は通ったと思ってたんだけど、評判も悪い。
  • リファクタリング自爆奥義集 - Qiita

    こんにちは、リファクタリングが大好きなミノ駆動です。 この記事は READYFORアドベントカレンダー2021 、13日目の記事です。 これはなに? コードが複雑化し、技術的負債が蓄積していくと、コードの変更が難しくなり、開発生産性が低下していきます。技術的負債の解消にはリファクタリングが必要です。 しかし、リファクタリングの実施には数々の罠やハードルがあります。 下手すると逆に負債を作り込んでしまうといった、自爆技をやりかねません。 この記事は、リファクタリングのアンチパターンと、その対策をまとめたものです。 この記事のゴール リファクタリングには様々なアンチパターンがあることを知る。 アンチパターンにハマらないためのアプローチを知る。 リファクタリングの効果を高めるにあたり、何のために実施するのか意義を理解する。 前提知識 なぜ自爆技となるのか、自爆だと理解するのに必要な前提知識を挙げ

    リファクタリング自爆奥義集 - Qiita
    quick_past
    quick_past 2021/12/13
    設計の經驗も教育もまだない人に、実践で覚えろとばかりに設計をやらせると、その時点で炎上が約束されてるんだけど、そういうチーム内の問題で起こるケースもたくさんあると思う。
  • なぜエンジニアが作る画面はダサいのか…?「理由」と「対策」を徹底解説【エンジニア向け画面デザイン講座】 - Qiita

    なぜエンジニアが作る画面はダサいのか…?「理由」と「対策」を徹底解説【エンジニア向け画面デザイン講座】UXUIDesignUIデザイン画面設計 1.はじめに エンジニアの私がデザインを気で勉強した結果、デザイナーとエンジニアはそもそも思考が大きく違っているということがわかりました。 今回は「それ」をデザインに苦手意識のあるエンジニア方にも理解してもらえたらと思い、わかりやすくまとめてみました。 2.アプリの画面デザインを考えてみよう まず、こんなアプリを考えてみてください。 フィットネストレーナーが使うアプリ トレーニングルームでお客様とお話しながら使う 端末はタブレット そして 会員の個人情報確認 前回までのトレーニング状況の確認 次回の予約受付 といったことをします。 使える情報としては、こんな感じです。 あなたならどう画面デザインをするか、もしお時間があったら考えてみてください。

    なぜエンジニアが作る画面はダサいのか…?「理由」と「対策」を徹底解説【エンジニア向け画面デザイン講座】 - Qiita
    quick_past
    quick_past 2021/12/10
    とりあえず公式ドキュメントで説明されている、UIデザインガイドラインには、最低限沿ったデザインをやってほしい。
  • Raspberry Pi 4にLubnutu 20.04をインストールしてSSD化 - Qiita

    はじめに 入れなおす度に調べるのも面倒なので記録しました。 一回Raspberry Piに使ったSDの再利用とか、 SSDコントローラの相性が悪かった場合でも乗り越えられる手順です。 windows上のツール類は公式がおすすめしているものを使っています。 SSDに移行すると非常に快適ですね! 今の所、VLCでのHD動画の音飛びとカクカク再生がだめですが。 ※これが以下対応を行ったあとのデスクトップ画面です。 2020/5/29追記 なんかRaspberry Pi 4もまもなくSSDブートできるようになるみたいですね。 ここに至るまでに、けっこう試行錯誤があったんですけどね。。。 おおまかな流れ Raspberry Pi 4用のサーバー版のイメージをダウンロードし展開 SDカードの初期化 SDカードへイメージの書き込み Raspberry Pi 4にSD刺して起動 SSD化 Lubuntuの

    Raspberry Pi 4にLubnutu 20.04をインストールしてSSD化 - Qiita
  • Raspberry pi 4 に Lubuntu を gdm3 でインストールする - Qiita

    Ubuntu 20.04 LTS Server を Raspberry Pi 4 にインストール ではGUIインストールの手前までをやってみました。 ここでは Lubuntu をインストールしてみます。 作業日:2020年5月4日 次のコマンドを実行します。

    Raspberry pi 4 に Lubuntu を gdm3 でインストールする - Qiita
    quick_past
    quick_past 2021/11/18
    “Ubuntu 20.04 LTS Server を Raspberry Pi 4 にインストール ではGUIインストールの手前までをやってみました。 ここでは Lubuntu をインストールしてみます。”
  • 技術系の電子書籍を無料配布してるサイト - Qiita

    DRMフリーのePub/PDFのみ。 iPhoneのiBooksに何も入ってなくて寂しい人にもおすすめ。 LPIC Linux標準教科書 Linuxサーバー構築標準教科書 高信頼システム構築標準教科書 Linuxセキュリティ標準教科書 達人出版会 ケヴィン・ケリー著作選集 1 - 達人出版会 ケヴィン・ケリー著作選集 2 - 達人出版会 ケヴィン・ケリー著作選集 3 - 達人出版会 CSS 2.1仕様 日語訳 EPUB版 - 達人出版会 FuelPHP Advent Calendar 2012 - 達人出版会 FuelPHP Advent Calendar 2013 - 達人出版会 O'Reilly O'Reilly Japan - EPUB 3とは何か? O'Reilly Japan - Cloudera Impala Git関連 ###Pro Git語版電子書籍公開サイト 公式

    技術系の電子書籍を無料配布してるサイト - Qiita
  • PharoLauncherでSmalltalk環境を作る(2020年末版) - Qiita

    Smalltalkを触ってみよう! Pharo(Smalltalk)を扱う環境を作ります。 PharoおよびSmalltalkは一見とっつきにくいですが、非常に柔軟で、使いやすい言語・環境です。 実は当初Smalltalk環境のインストールが済んだ後の内容を書きたかったのですが、ネットで探した「最初の一歩」的な記事が少し古い状態になっていたので、2020年末時点での環境を作りをまとめました。 OS Windows 10 (20H2) Pharo 8.0.0(stable) PharoLauncher 2.2 MacOSもいけるはずなのですが、最近のOS環境変動が大きいらしく、自分が試したところこの先にやりたいことで少々予想外の挙動が見られました。そのため今回はWindowsでご紹介します。インストールまでなら特に問題ありません。Linuxは最近使える環境を整備していないのでパスします。Wi

    PharoLauncherでSmalltalk環境を作る(2020年末版) - Qiita
    quick_past
    quick_past 2021/10/01
    Smalltalk萌え