![Loading...](https://cdn-ak-scissors.b.st-hatena.com/image/square/8bb9ecdcdf3eb03aeae664a177ae0a7e04e8c02a/height=288;version=1;width=512/https%3A%2F%2Fi0.wp.com%2Fwww.blog.umentu.work%2Fwp-content%2Fuploads%2F2016%2F06%2F2503b7efadc774b952d489b96a4f7f1a.png%3Ffit%3D323%252C305%26ssl%3D1)
はじめに 畳み込みニューラルネットワークの理解のため、深層学習用のライブラリに依存せず、Numpyのみを用いPythonでアルゴリズムを実装しました。 今後はGPUに対応させたものに改良したいです。また、逆誤差が適切に伝播しているかは未検証ですので、まだまだ開発途中のものを掲載しています。 GitHub https://github.com/NaotoMasuzawa/Deep_Learning/tree/master/Python_CNN 参照したコードと技術書 コードを実装するにあたって、Yusuke SugomoriさんのGitHubと技術書を参考にしました。大変感謝しています。 GitHub https://github.com/yusugomori 技術書 https://www.amazon.co.jp/Java-Learning-Essentials-Yusuke-Sugom
対象 Ansibleに興味があり、 実際にAnsibleを使用してサーバー構成管理を体験してみたい人。 はじめに 今回はAnsibleの公式ページで公開されているDirectory Layoutをもとに実際にAnsibleを動かすハンズオンを行う。 Ansibleのベストプラクティスについて まずはハンズオンの前に下記のスライドをご覧下さい。 ハンズオン 環境準備 Virtual Box Vagrant Github 仮想環境構築 $ git clone https://github.com/yukihirai0505/ansible-best-practice-hands-on $ cd ansible-best-practice-hands-on $ vagrant up ここで一旦 ansible-best-practice-hands-on/httpdStore の中身を覗いてみる
多くの言語に「クラスメソッド」がありますが、Rubyで実装する場合はいろいろ考えることが出てきます。 「クラスメソッド的なメソッド」とは ここでは、「SomeConst.some_method」のような形式で呼び出すものを総称して「クラスメソッド的なメソッド」と呼ぶことにします。実際には、多様なものが含まれます。 クラスインスタンスの特異メソッド(クラスメソッド) モジュールインスタンスの特異メソッド モジュール関数(厳密には1つの種類ではありませんが、便宜上入れておきます) クラスやモジュールのインスタンスにextendされたモジュールのメソッド 今回の論題 今回は、「特定のクラスと紐付ける必要のない(or紐付けられない)」クラスメソッド的なメソッドについて考えます。例えば、ファクトリーメソッドやActiveRecordの探索系メソッドは、同じクラスのインスタンスやコレクションを生成する
この記事について ランダムウォークを例題にカルマンフィルターを実装してみるよ。 カルマンフィルターとは ノイズという名のペルソナを引きはがし、真の姿を推定するテクニックです。 理論的なこと 典型的な設定として、下のようなシステムを考えてみましょう。 \begin{align} x_{t+1} &= F_t x_t + G_t w_t \tag{1.1}\\ y_t &= H_t x_t + v_t \tag{1.2}\\ \end{align} $x_t$はシステムの内部状態を表し、$y_t$はその観測値です。内部状態$x_t$は$(1.1)$に従い時間発展していきます。一方で、観測値$y_t$は$(1.2)$に従って、ノイズが乗った状態で掃き出されます。観測値$y_t$から、直接観測できない内部状態$x_t$を推測することが目的です。 設定を簡単にするため、$w_t$ と$v_t$はそれ
Matplotlibでかっこいいプロットにしたい seabornのプロットはかっこいい。毎回インポートするのめんどくさいなと思っていたのですが、seabornをインポートせずにseabornのスタイルを使うことができることに気づいた。(もしかすると当たり前?) もちろん、あらかじめseabornをインストールしておく必要はある。 どんなプロットができるか、メモ。 どんなスタイルがあるか確認 matplotlib/mpl-data/stylelibというフォルダに入っているxxx.mplstyleがスタイルファイル。もちろん自分で作ることもできる。結局、どのスタイルも一長一短なので、自分で作って置いておくのが一番いいかもね。 中身の例:dark_background.mplstyle Set black background default line colors to white. lin
メリークリスマス!!!! @tabe2314です。 この記事では、明日から使えるChainerテクニックとして、既存モデルをファインチューンして新しいモデルをつくる際の個人的なベストプラクティスを紹介します。 ニューラルネットを学習するために、別の問題、別のデータセットで学習済みのモデルのパラメータをコピーして、それを新しいニューラルネットのパラメータの初期値として使うことをファインチューニングといいます。 典型的なケースとして、一般物体認識のデータセットであるImageNetで学習したネットワークを物体検出やSemantic Segmentationといった別の問題に使用するといった例があります。 一般的にDeep Learningでは大量の学習データが必要とされていますが、あらかじめ(大量のデータで)学習したモデルを初期値として使いファインチューニングすることで、実際に解きたい問題に関
2018-05-08 Yolo (Darknet) でcifar10の学習 2018-05-05 python 2018-05-01 OCRソフト Keras 2018-04-19 自然言語処理 2018-04-04 古文書 現在の作業メモ 2018-03-20 pyTorch 2018-03-19 Anaconda 2018-03-16 YOLO(Darknet)でCOCOの学習 2018-03-13 YOLO(Darknet)でVOCの学習 2018-03-10 Deep Learning関係 2018-03-03 abc8y 2018-03-02 xyz abc8x 2018-02-12 abc04 abc03 2018-02-11 abc02 2018-02-10 abc01 abc74 はじめるDeep learning TheanoでDeep Learning Theanoの使
Chainerのcaffeモデルの読み込みが遅い 下記記事で、Chainer使った画像認識をしたのですが、一つ問題があってモデルの読み込みが遅い。遅過ぎる! で、色々調べたらどうもcaffeの学習モデルのChainerのモデルへの変換に時間がかかっていることがわかりました。で、更に調べたら id:shi3z さんがまさにそこらへんのこと書いてくれているじゃないですか。 ただ、例によってあまりにあっさり書いてあるのと、汎用的でないので少し使いやすい形にして下記リポジトリにアップしました。 convert_caffe_to_chainer.pyがcaffeモデルからChainerモデルに変換するスクリプトです。以下のように変換したいモデルと変換後のモデルのファイル名を引数にして実行することで変換できます。 $ python convert_caffe_to_chainer.py bvlc_go
in English はじめに 先のページで Caffe を使ったシーン認識(15分類問題)を試みた。今回は、Caffe の学習済みモデルを Chainer を使って Fine-Tuning することにより同じシーン認識を行ってみる。 計算機環境 これまでと同じく、Amazon EC2 にある g2.2xlarge を利用した。GPU を搭載したインスタンスである。 データセット 先と同じ LSP15 を利用する。このデータセットは15個のディレクトリから構成されている。 MITcoast MITforest MIThighway MITinsidecity MITmountain MITopencountry MITstreet MITtallbuilding bedroom CALsuburb industrial kitchen livingroom PARoffice store
Deep Learning系のライブラリを試すのが流行っていますが、Exampleを動かすのはいいとしても、いざ実際のケースで使おうとするとうまくいかないことがよくあります。 なんとか動かしてみたけれど精度が出ない、データの加工の仕方が悪いのか、モデルのパラメーターが悪いのか、原因がぜんぜんわからん・・・という事態を乗り越えるには、やはり仕組みに対する理解が必要になってきます。 そんなわけで、本編では画像の用意という一番最初のスタートラインから、Chainerで実装したCNNを学習させるところまで、行うべき手順とその理由を解説していきたいと思います。 前段として理論編を書いていますが、ここではライブラリなどで設定しているパラメーターが、理論編の側とどのようにマッチするのかについても見ていきたいと思います。 なお、今回紹介するノウハウは下記リポジトリにまとめています。画像認識を行う際に役立て
去年、オンライン機械学習本(クマ本)を読んで線形分類器を実装する記事を書いたり、それらのアルゴリズムをまとめてcl-online-learningというライブラリを作ってLispmeetupで紹介したりした。 https://github.com/masatoi/cl-online-learning 書籍「オンライン機械学習」を買ったのでCommon Lispで実装してみた。 書籍「オンライン機械学習」を買ったのでCommon Lispで実装してみた。(AROW編) Lisp meetup #29 cl-online-learningの紹介 その後放置していたのだが、最近になってもはや使わないようなアルゴリズムは削除したり、疎ベクトルへの対応や、学習器のCLOSオブジェクトを単なる構造体にするなどの大きな変更をした。このあたりで一度ちゃんと紹介記事を書いておこうかと思う。 cl-onlin
この記事の内容 ①テストとは、②mochaとchaiを使ったNode.jsテスト ソフトウェアテスト コンピュータのソフトウェアプログラムを実行し、それが意図したとおりに動くかを観測・評価・検証する作業のこと。通常は検証対象のソフトウェアを実際に試行する動的テストを指すが、レビューなどを静的テストと呼んで広義のテストに含める見方もある。 引用元 http://www.itmedia.co.jp/im/articles/1111/07/news192.html テストケースとは ソフトウェア開発におけるテストは一般に、ユーザーの使用状況を反映した入力データを用いてソフトウェアを実行し、事前に想定した結果と実際の実行結果をつき合わせて合否の判定を行う。このテスト用の“入力データ”とそれを実行したら得られるであろう“事前に想定した結果”の対をテストケースという。すなわち、テストケースを使って対象
はじめにいままでchainerについてちょいちょい書いているのですが(その1)(その2)、実際に画像のクラス分けをしてみたいので、その途中段階までをまとめます。顔認識ということですが、乃木坂のメンバーを認識してみようと思います。画像集めの問題もあって今回は入力画像をメンバー4人+それ以外人たちの5つのクラスの誰であるかを判別します。(adsbygoogle = window.adsbygoogle || ).push({}); データセットデータですが、乃木坂メンバーからとりあえず、秋元真夏、白石麻衣、西野七瀬、生田絵梨花、そして誰やねん... コードの全文はgithubに 下のコードは実際に画像を指定してpredictする。 from image2TrainAndTest import image2TrainAndTest from image2TrainAndTest import g
これまで WordPress を使って技術メモを書いていたのですが、静的サイトジェネレーターの記事を読んで試してみたいと思いました。 とりあえず有名どころの jekyll, Hugo, Hexo などを一通り使ってみたのですが、React.js 製の Gatsby が面白そうだなと思って WordPress から移行してみました。 gatsby https://github.com/gatsbyjs/gatsby ちなみに移行したサイトはこちら Gatsbyの特徴 React.js ならではのリロード無しでのページ遷移 サイト構築のためのコンポーネント・モデルが使える ライブで開発できる 導入方法 事前に Node.js と npm をインストールしておく必要があります。 インストール
日報は死ね などと言われる昨今の IT 業界だけど、いま自分が所属しているチームにおいては情報共有の文化がまだまだ醸成されておらず、分報を導入するにはちょっとハードルが高いという状況にある。そういうチームにとって情報共有の習慣を身につけるステップのひとつとして日報という手法はまだまだ有効なのではないかと思っている。 カジュアルに日報を書いてもらうためには日報専用の Web サービスみたいなのを導入してはいけない。わざわざ Web ページを開いてまで他人の日報は読まない。普段使っているコミュニケーションツールにさりげなく日報を投稿させるほうがカジュアルに決まっている。 というわけで僕のチームでは Slack に日報用のチャンネルを作って投稿させることにした。 Slack で日報を運用するときのデメリットは「テンプレート機能がない」こと。別の場所にテンプレートを用意しておいて「そこからコピーし
ステータスバーもどき(Swing) Swingには、ステータスバーそのものは用意されていない。 JFrame#getContentPane()の下方にそれっぽいコンポーネントを配置することで代用する。 単純なラベル 少し複雑な配置 [/2007-02-08] ツールバーとの並存 単純なラベル /** * ステータスバーの初期化 */ private void initStatusBar(Container c) { JLabel bar = new JLabel("status"); c.add(bar, BorderLayout.PAGE_END); } 少し複雑なステータスバー 左詰のペインを用意し、その上に必要なコンポーネントを配置する例。 /** * ステータスバーの初期化 */ private void initStatusBar(Container c) { JPanel ba
こんにちは。 A* search algorithm の Javascript 実装(下記)を利用し、最短経路探索を行ってみました1 2。地図表示には d3.mapzoom を利用しました3。 A* Search Algorithm in JavaScript (Updated) - Brian Grinstead javascript-astar (demo) https://github.com/bgrins/javascript-astar 始点は Paris、終点は Cannes の条件(query = {"start": "Paris", "end": "Cannes"};)を与えると下記の結果(および計算時間、最短経路解は地図上で矢印付き表示)が得られます。 <!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8
データ個数が$n$の時のバイナリサーチの計算量が$O(log_2n)$となる理由について書いてみました。 $log_an$ とは「$a$を○乗すると$n$になる」の「○」にあたる値です。 (例:$log_28$ は「$2$を○乗すると$8$になるような○」なので「$log_28 = 3$」) バイナリサーチのアルゴリズムを簡単に書くと 検索範囲(ソート済み)の中央に位置する値を検索値と比較する。 検索値が中央の値より大きければ中央より右側、小さければ中央より左側を検索範囲に設定する。 中央の値 == 検索値が真となるような中央の値が見つかる(または検索範囲が$1$になる)まで、1~2を繰り返す …となります。 検索範囲が$1$になった状態とは、(検索範囲のデータ個数を$n$として)「$n$に対して$\frac{1}{2}$を繰り返し掛けていき、検索範囲のデータ個数が$1$になった状態」と言
ちょっと発言力のありそうな方がテクニカルに誤りを書かれていたので、ここでひっそりと訂正しておきたい。 このスライドの43ページ目に、 The problem with Paxos-based algorithm is that replications are eventual consistent. と、色付き文字で協調されて書かれている。このスライドで主張したいことの本筋ではないが、Spannerの性能がよいこととは関係がなく、Paxosなどのレプリケーションと、トランザクションとの関係で誤解を広めそうなので指摘しておきたい。辻マサカリと言って差し支えないだろう。 PaxosはStrongly consistentであることがMade Simpleの論文で証明されている(Strongly consistentが何かはまた別の機会にここに書こうと思う)。ちょっと長いが引用しておこう。 T
Electronとは? Electronは JavaScript、HTML、CSS を使ってデスクトップアプリケーションを作ることができる ライブラリ です。作ったアプリケーションはMac、Windows、Linuxで動かせます。 次は: なぜ重要? 定義: JavaScript、HTML、CSS はWeb用の言語で、Webサイトの基本的な構成要素です。Chromeなどのブラウザは、コードをふだん目にするグラフィックに変えて表示します。 Electronはライブラリです Electronはコードですが、再利用でき、自分で書き起こす必要がありません。ユーザはその上にプロジェクトを構成します。 参考資料 Apps built on Electron Electron API Demos (Electronで何ができるかをみてください) なぜ重要? 一般に、デスクトップアプリケーションは各オペレ
swingでGUIアプリを作成した場合、RuntimeExceptionやError等のチェック例外じゃないものは、Event Dispah Therad(EDT)が処理する事になる。 なので、ユーザへ通知されない為「何も起きないぞ!! もう一度ボタン押してみるか、やっぱり何も起きない!!! なんだこのクソアプリ!!!!」となってしまう。GUIなんで、コンソールへ出力されたstacktraceに気付くことは、皆無でしょう。 "エラーが発生しました"くらいのダイアログは、表示したいです。 そこで、EDTにユーザ作成のエラー処理を呼びだしてもらう方法を考えてみます。 うんともすんとも言わないswingアプリ 以下のプログラムをサンプルとします。 実行すると、3つボタンが表示され、 「Exception」ボタンを押すと、自前でtry〜catchしてるので、エラーdialogが表示されます。 「R
※ Java8 から Swing から JavaFX への移行を推奨している。 Swingとは [2014-10-08] Swingはスレッドセーフではない [2014-10-08] 時間がかかる処理はSwingWorkerを使う [2014-10-08] EDT上でスレッドを固めない SecondaryLoop (モーダルダイアログの仕組み) [2015-02-08] JTextArea の行間を変える( JTextPane や JEditorPane は使用しない) [2015-02-11] Swingとは Swingは、プログラミング言語 Java のGUIツールキット。 同じく Java の GUI ツールキットである AWT を拡張したもの。 AWT はオペレーティングシステムのウィンドウシステムに準じたデザインになるのに対し、 Swing で作成した GUI は Java プロ
動機、なぜJavaFXでアプリを作るのか? Javaには、Swingという、十分に成熟しておりパフォーマンスも悪くないUIライブラリがある。 現状、普通に使っている分には何の不自由もない。 また、Swingは今後発展することはないとはいえ、(すぐに)廃止されるわけではない。*1 ※ 2018/9以降、JavaFXはOpenJDK, OracleJDKともに同梱されないことになった。すなわち、JavaFXはJavaの標準のツールキットではなくなる。なので、無理にJavaFXを勉強しなくてもいいかもね。(というか、Oracleの業態からいってクライアント向けの機能は必要としていないから、今後はGuiまわりは全部切られるかも?) 2018/6/2追記 ※ Java11でJavaFXを使う方法について記事を書きました。(2018/7/27) ならば、どうしてJavaFXなどという、新しいUIライブ
「パッケージソフトウェア開発」5日目です。 近頃、パッケージソフトウェアのクライアントアプリ開発でJavaFXに触ってみたので、記事を書いてみることにしました。 Java AppletやSwing、Flexなどをちょこちょこやってきた私ですが、JavaFXで画面作って改めて思ったことを書きます。 ここ数日はアプレッソ開発部の方々が投稿されておりましたが、私は一般参加(?)ということでゆるい感じで。 JavaFXについてはJavaFX Advent Calendarにそうそうたるメンバーがエントリーされているので、そちらを。 JavaFXで最初に気になったこと。 実際に少し画面を作ってみて早速いくつか気になりはじめました。 FXML FlexでMXML、SilverlightでXAML、で、こんどはFXMLかよ... XMLはマシンが読むものであって人間の私には無理です。 またXMLで画面作
E2D3はデータビジュアライゼーションを通じて、ビジネスや社会における課題を解決することを目標にしています。この連載を通して、E2D3とはどんなことができて、どんな開発手法をとり、なぜOSSの形態をとっているか等余すところなくお伝えしたいと思います。 データ活用の敷居を下げるE2D3 E2D3は「Excel to D3.js」の略称で、一言で言うと「Excelを使ったデータビジュアライゼーションのアプリケーション」。Windows 「Excel 2013以上」やMac 「Excel 2016」、One Drive「Excel Online」から呼び出すことができます。 図1 E2D3のテンプレート群 操作はいたって簡単。ExcelからOfficeアドインである「E2D3」を起動するだけ(起動方法については「Use E2D3」のページをご覧ください)。あとは反映したいデータを選択し、目的に合
メモ用記事 Gumbel Softmaxの論文 活性化関数 中間層の活性化関数 出力層での活性化関数 良いらしい Gumbel Softmaxの論文 論文は以下にあります。 [1611.01144] Categorical Reparameterization with Gumbel-Softmax 活性化関数 中間層の活性化関数 中間層での活性化関数は、通常はシグモイド関数やReLUなどが用いられます。 中間層での活性化関数は基本的に好きなものを用いればよく、データをよく表現できれば何でも良いです。言い換えれば、これが良いというものを決めることは難しいです。 通常はReLUが高精度を達成できると言われています(暗にスパース性を持たせることができる)。 出力層での活性化関数 出力層での活性化関数は、問題に応じてある程度決められています。 回帰ならば恒等写像 1ユニットを用いた二値分類ならば
自己符号化器の役割 自己符号化器の構成方法 数式を見る 損失関数を見る 主成分分析の復習 主成分分析の復習 主成分分析の次元削減 自己符号化器と主成分分析 損失関数の書き換え 主成分分析との比較 自己符号化器の価値 非線形性を容易に表現 雑音に対するモデル構築が容易 ニューラルネットワークの良い初期状態を与える 自己符号化器の役割 自己符号化器は入力の有用な特徴を抽出すると言われていますが、なぜに自己符号化器がそれを可能にしているのかを見てみましょう。 自己符号化器の構成方法 簡単な例で行くと、入力が3次元でこれを2次元に落としたいという場合には以下のように自己符号化器を構成します。 1. 3→2→3のネットワークを構成する 2. このネットワークを入力出力として、となるように学習 3. 学習で獲得した3→2のネットワーク部分のみを取り出す。 入力の次元が3次元であるものを、2次元に落とし
性懲りもなく前回の記事の追加実験を続けています。 DCGANを書きたくなったので書いてみたところ、どうでもいい知識が溜まったので書いておきます。 内容は主に以下になります。 KerasのTips的なの DCGANいじる過程 DCGAN自体の説明は他の記事を参照してください。私は主にこのあたりを参考にしました。 Chainerを使ってコンピュータにイラストを描かせる Chainerで顔イラストの自動生成 keras-dcgan Keras関連 Kerasのことしか書いてないので興味ない方は読み飛ばしてください。 Kerasのtrainable Keras DCGAN で検索すると一番上にkeras-dcganがでてきます。参考にしようと覗いてみると訓練中にtrainableの値を切り替えることによってGenerator学習時にDiscriminatorの重みを更新しないようにしているようです
メニュー 注意 資料の見方 事前準備について 資料内で紹介する各種ツールのバージョンについて 後片付けはしっかりと 参考資料 参考 URL 参考書籍 1. 事前準備 1-1. Docker Engine を動かす仮想マシンを用意する 1-2. 作成した仮想マシンに SSH でログイン出来るようにしておく 1-3. 作成した仮想マシンに HTTP でアクセス出来るようにしておく 2. 準備運動 2-1. Docker Engine インストール 2-2. 初めての docker run 2-3. 初めての docker build からの docker run 注意 資料の見方 以下、実行するコマンドの表示です。
はじめに 過去に参加したKaggleの情報をアップしていきます. ここでは,BOSCHの上位者が公開した情報についてまとめます. コンペ概要やkernelに関しては,Kaggleまとめ:BOSCH(intro+forum discussion),Kaggleまとめ:BOSCH(kernels)にまとめており,こちらでは解析結果やテクニックについての議論にフォーカスしています. 本記事はPython2.7, numpy 1.11, scipy 0.17, scikit-learn 0.18, matplotlib 1.5, seaborn 0.7, pandas 0.17を使用しています. jupyter notebook上で動作確認済みです.(%matplotlib inlineは適当に修正してください) 1st place solution Belugaがアプローチについて説明しています
背景 過去に大好評だったDocker入門の内容を2016年版にupdateした再入門投稿3本が終わったので、 まだ紹介していない機能を投稿していきます。 Docker Machine 入門(Hyper-Vの場合) Docker Machine 入門(AWSの場合) Docker 再入門3 2016 Docker 再入門2 2016 Docker 再入門1 2016 Docker 入門 (SlideShare) 動作環境 ThinkPad X200s OS:Linux MINT 18 ThinkPad X1 Carbon OS:Windows 10 Pro (Hyper-V) 個人的に開発環境OSはLinuxが主なので、MacOSやWindowsについては優先度が低いのでご了承ください。 Dockerコンテナの作成方法 これまでの投稿で2種類の作成方法を紹介して来ました。 1つはDocker
Stephen Brennan • 14 November 2016 A while back, I wrote about writing a shell in C, a task which lets you peek under the covers of a tool you use daily. Underneath even a simple shell are many operating system calls, like read, fork, exec, wait, write, and chdir (to name a few). Now, it’s time to continue this journey down another level, and learn just how these system calls are implemented in Li
ユニティちゃんを自在に動かす夢はついえていませんが、最近Unityを触る機会がめっきり減ってしまっているzukaです。 そのため、空間認識能力が低い人のUnity開発記録はしばしお休みし、最近個人的にハマっているSlackの便利な使い方をご紹介したいと思います。 はじめに みなさんは連絡手段ツールとして何を使用されていますか? わが家では最近、Slackを活用しています。 Slackはスタンプの送信はできませんが、メッセージのやり取りだけでなく、Botを活用したり他サービスと連携させていろいろと便利に使えます。 また、編集・削除ができるので、誤ったメッセージを送信しても安心です。 クライアントアプリも提供されていますので、スマホでも手軽に利用できます。 今回のテーマ 帰宅する時に「帰ります」と連絡しても、なかなか返信が返ってこない...。 そんなちょっぴり寂しい思いをしたことありませんか?
Post updated by Matt Makai on December 13, 2017. Originally posted on June 04, 2016. Bots are a useful way to interact with chat services such as Slack. If you have never built a bot before, this post provides an easy starter tutorial for combining the Slack API with Python to create your first bot. We will walk through setting up your development environment, obtaining a Slack API bot token and c
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く