<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ja"><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="https://www.y4su0.com/feed.xml" rel="self" type="application/atom+xml" /><link href="https://www.y4su0.com/" rel="alternate" type="text/html" hreflang="ja" /><updated>2026-04-11T15:50:18+09:00</updated><id>https://www.y4su0.com/feed.xml</id><title type="html">y4su0.com</title><subtitle></subtitle><author><name>やすお</name></author><entry><title type="html">自然対数の底をモンテカルロ法で求める</title><link href="https://www.y4su0.com/2023/11/euler-number.html" rel="alternate" type="text/html" title="自然対数の底をモンテカルロ法で求める" /><published>2023-11-25T16:02:00+09:00</published><updated>2023-11-25T16:02:00+09:00</updated><id>https://www.y4su0.com/2023/11/euler-number</id><content type="html" xml:base="https://www.y4su0.com/2023/11/euler-number.html"><![CDATA[<h2 id="最初に">最初に</h2>

<p>$[0, 1)$ の範囲の独立な乱数を足して $1$ を超えるまでの個数の期待値は $e$ (自然対数の底)、という定理があります。証明は<a href="https://aue.repo.nii.ac.jp/records/2871">愛知教育大の鈴木先生の論文</a>あたりを参照。</p>

<p>で、この定理を使えばモンテカルロ法で $e$ を求めることができるので Python で試してみた、というお話。</p>

<h2 id="pythonで書いてみる">Pythonで書いてみる</h2>

<p>1億回試してみて個数の平均を取る (ついでに処理時間を計測する) Python コードは以下の通りです。いろいろ効率が悪い書き方かもしれないけど、素直に書いたらこんなものでしょう。</p>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kn">from</span> <span class="nn">numpy</span> <span class="kn">import</span> <span class="n">random</span>
<span class="kn">import</span> <span class="nn">time</span>

<span class="n">loop</span> <span class="o">=</span> <span class="mi">10</span> <span class="o">**</span> <span class="mi">8</span>
<span class="n">num_rand</span> <span class="o">=</span> <span class="mi">0</span>

<span class="n">start</span> <span class="o">=</span> <span class="n">time</span><span class="p">.</span><span class="n">process_time</span><span class="p">()</span>
<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">loop</span><span class="p">):</span>
    <span class="n">sum_rand</span> <span class="o">=</span> <span class="mi">0</span>
    <span class="k">while</span> <span class="bp">True</span><span class="p">:</span>
        <span class="n">sum_rand</span> <span class="o">+=</span> <span class="n">random</span><span class="p">.</span><span class="n">rand</span><span class="p">()</span>
        <span class="n">num_rand</span> <span class="o">+=</span> <span class="mi">1</span>
        <span class="k">if</span> <span class="p">(</span><span class="n">sum_rand</span> <span class="o">&gt;</span> <span class="mf">1.0</span><span class="p">):</span>
            <span class="k">break</span>

<span class="k">print</span> <span class="p">(</span><span class="n">time</span><span class="p">.</span><span class="n">process_time</span><span class="p">()</span> <span class="o">-</span> <span class="n">start</span><span class="p">)</span>
<span class="k">print</span> <span class="p">(</span><span class="n">num_rand</span> <span class="o">/</span> <span class="n">loop</span><span class="p">)</span>
</code></pre></div></div>
<p>Apple M2 搭載の MacBook Air 15inch (2023) + Python 3.11.6 という環境でこれを実際に動かしてみると出力は以下の通り。</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>52.353312
2.71844723
</code></pre></div></div>
<p>$e$ の値が $2.718281828459045…$ なので、52秒かけて有効数字4桁ぐらいまで求められることになります。</p>

<h2 id="もっと効率のよい方法">もっと効率のよい方法</h2>

<p>$e$の値に関しては</p>

\[e=\sum_{n=0}^{\infty}\frac{1}{n!}\]

<p>というもっと有名な定理があって、これを Python で書くと以下の通りになります。</p>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kn">from</span> <span class="nn">functools</span> <span class="kn">import</span> <span class="n">cache</span>
<span class="kn">import</span> <span class="nn">time</span>

<span class="o">@</span><span class="n">cache</span>
<span class="k">def</span> <span class="nf">factorial</span><span class="p">(</span><span class="n">n</span><span class="p">:</span> <span class="nb">int</span><span class="p">):</span>
    <span class="k">if</span> <span class="n">n</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
        <span class="k">return</span> <span class="mi">1</span>
    <span class="k">return</span> <span class="n">n</span> <span class="o">*</span> <span class="n">factorial</span><span class="p">(</span><span class="n">n</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span>

<span class="n">e</span> <span class="o">=</span> <span class="mi">0</span>

<span class="n">start</span> <span class="o">=</span> <span class="n">time</span><span class="p">.</span><span class="n">process_time</span><span class="p">()</span>
<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">10</span><span class="p">):</span>
    <span class="n">e</span> <span class="o">=</span> <span class="n">e</span> <span class="o">+</span> <span class="mf">1.0</span> <span class="o">/</span> <span class="n">factorial</span><span class="p">(</span><span class="n">i</span><span class="p">)</span>

<span class="k">print</span><span class="p">(</span><span class="n">time</span><span class="p">.</span><span class="n">process_time</span><span class="p">()</span> <span class="o">-</span> <span class="n">start</span><span class="p">)</span>
<span class="k">print</span><span class="p">(</span><span class="n">e</span><span class="p">)</span>
</code></pre></div></div>
<p>コード通り $n=10$ で計算を打ち切ったら出力は以下の通り。</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>8.100000000021979e-05
2.7182815255731922
</code></pre></div></div>
<p>ということで、10,000分の1秒ほどで有効数字6桁の精度で $e$ の値が求められます。</p>

<p>(2023/12/31 追記)</p>

<p>mathモジュールにfactorial()という階乗を求める関数があったので、自前で実装せずにこっちを使ってみる。</p>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kn">import</span> <span class="nn">math</span>
<span class="kn">import</span> <span class="nn">time</span>

<span class="n">e</span> <span class="o">=</span> <span class="mi">0</span>

<span class="n">start</span> <span class="o">=</span> <span class="n">time</span><span class="p">.</span><span class="n">process_time</span><span class="p">()</span>
<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">10</span><span class="p">):</span>
    <span class="n">e</span> <span class="o">=</span> <span class="n">e</span> <span class="o">+</span> <span class="mf">1.0</span> <span class="o">/</span> <span class="n">math</span><span class="p">.</span><span class="n">factorial</span><span class="p">(</span><span class="n">i</span><span class="p">)</span>
<span class="k">print</span><span class="p">(</span><span class="n">time</span><span class="p">.</span><span class="n">process_time</span><span class="p">()</span> <span class="o">-</span> <span class="n">start</span><span class="p">)</span>
<span class="k">print</span><span class="p">(</span><span class="n">e</span><span class="p">)</span>
</code></pre></div></div>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>4.499999999996174e-05
2.7182815255731922
</code></pre></div></div>

<p>ということで、当たり前ながら結果は変わらないけど、所要時間はさらに約半分になりました。</p>

<p>(以上、追記)</p>

<p>効率のいい方法がある時はそっちを使った方がいいですよ、というお話でした。</p>]]></content><author><name>やすお</name></author><summary type="html"><![CDATA[自然対数の底をモンテカルロ法で求める (そのまんま)]]></summary></entry><entry><title type="html">macOSでも右クリックで「Codeで開く」</title><link href="https://www.y4su0.com/2023/05/open-with-code-on-mac.html" rel="alternate" type="text/html" title="macOSでも右クリックで「Codeで開く」" /><published>2023-05-01T18:02:00+09:00</published><updated>2023-05-01T18:02:00+09:00</updated><id>https://www.y4su0.com/2023/05/open-with-code-on-mac</id><content type="html" xml:base="https://www.y4su0.com/2023/05/open-with-code-on-mac.html"><![CDATA[<p>macOSのFinderでもファイルまたはフォルダを選択した状態から右クリックで「Codeで開く」を実現するためのメモ。
おおかたの予想通り、「ショートカット」を使います。</p>

<ol>
  <li>「ショートカット」を立ち上げる。</li>
  <li>左ペインの「クイックアクション」を選択。</li>
  <li>上の「＋」をクリックして新規ショートカットを作成。</li>
  <li>「スクリプティング」&gt;「シェルスクリプトを実行」を選択し、アクションとして追加</li>
  <li>実行するスクリプトとして以下を記述。
    <div class="language-sh highlighter-rouge"><div class="highlight"><pre class="highlight"><code>open <span class="nt">-n</span> <span class="nt">-b</span> <span class="s2">"com.microsoft.VSCode"</span> <span class="nt">--args</span> <span class="s2">"</span><span class="nv">$*</span><span class="s2">"</span>
</code></pre></div>    </div>
  </li>
  <li>「入力」を「ファイルパス」、「入力を渡す方法」を「引数として」に変更</li>
  <li>名前を「Codeで開く」あたりにして保存</li>
</ol>

<p>ショートカットの出来上がりはこんな感じ。</p>

<p><img src="/images/20230501_open_with_code.jpg" alt="open with code" /></p>

<p>うまくいけばショートカットメニュー内の「クイックアクション」に「Codeで開く」が登場します。</p>

<p><img src="/images/20230501_right_click.jpg" alt="context menu" /></p>

<p>Windowsだと右クリックメニュー直下なのでWindows版で慣れている人には少し違和感があるかもしれませんが、そこは慣れてもらうということで。</p>

<p><a href="/">Top</a></p>]]></content><author><name>やすお</name></author><summary type="html"><![CDATA[Windowsなら簡単にできる "右クリックして「Codeで開く」" をmacOSでも実現する]]></summary></entry><entry><title type="html">お役立ちMastodonアカウント</title><link href="https://www.y4su0.com/2023/02/mastodon-accounts.html" rel="alternate" type="text/html" title="お役立ちMastodonアカウント" /><published>2023-02-23T18:10:00+09:00</published><updated>2023-02-23T18:10:00+09:00</updated><id>https://www.y4su0.com/2023/02/mastodon-accounts</id><content type="html" xml:base="https://www.y4su0.com/2023/02/mastodon-accounts.html"><![CDATA[<p>ニュースやスポーツ系など、役立ちそうなMastodonアカウントを集めてみました。数が増えてきたら更新していきます。</p>

<p>なお、NERV以外はTwitterアカウントの非公式ミラーっぽいです。</p>

<h2 id="ニュース系">ニュース系</h2>
<h3 id="英語">英語</h3>

<ul>
  <li>BBC速報 (<a href="https://mediastodon.com/@BBCBreaking">@BBCBreaking@mediastodon.com</a>)</li>
  <li>AFP (<a href="https://mediastodon.com/@AFP">@AFP@mediastodon.com</a>)</li>
  <li>New York Times (<a href="https://mediastodon.com/@nytimes">@nytimes@mediastodon.com</a>)</li>
</ul>

<h3 id="日本語">日本語</h3>

<ul>
  <li>NERV (<a href="https://unnerv.jp/@UN_NERV">@UN_NERV@unnerv.jp</a>)</li>
  <li>
    <p>NERVアカウント一覧 (<a href="https://unnerv.jp/about/more">https://unnerv.jp/about/more</a>)</p>
  </li>
  <li>毎日新聞News (<a href="https://u-tokyo.social/@mainichi_bot">@mainichi_bot@u-tokyo.social</a>)</li>
  <li>CNN国際ニュース (<a href="https://u-tokyo.social/@cnn_bot">@cnn_bot@u-tokyo.social</a>)</li>
</ul>

<h2 id="スポーツ">スポーツ</h2>
<h3 id="アメリカ">アメリカ</h3>
<ul>
  <li>National Football League (<a href="https://sportsfeed.me/@nfl">@NFL@sportsfeed.me</a>)</li>
  <li>Major League Baseball (<a href="https://sportsfeed.me/@MLB">@MLB@spertsfeed.me</a>)</li>
  <li>National Hockey League (<a href="https://sportsfeed.me/@nhl">@nhl@sportsfeed.me</a>)</li>
  <li>Major League Soccer (<a href="https://sportsfeed.me/@MLS">@MLS@sportsfeed.me</a>)</li>
  <li>National Basketball Association……は見つからず</li>
</ul>

<h3 id="モータースポーツ">モータースポーツ</h3>
<ul>
  <li>Formula One (<a href="https://mastd.racing/@F1">@F1@mastd.racing</a>)
    <ul>
      <li><a href="https://retrotweets.com/@F1">@F1@retrotweets.com</a> もあります。</li>
    </ul>
  </li>
  <li>World Rally Championship (<a href="https://mastd.racing/@WRC">@WRC@mastd.racing</a>)</li>
  <li>World Rallycross Championship (<a href="https://mastd.racing/@FIAWorldRX">@FIAWorldRX@mastd.racing</a>)</li>
  <li>Formula E (<a href="https://mastd.racing/@FormulaE">@FormulaE@mastd.racing</a>)</li>
  <li>IndyCar Series (<a href="https://mastd.racing/@IndyCarSeries">@IndyCarSeries@mastd.racing</a>)</li>
  <li>Super Formula (<a href="https://mastd.racing/@SuperFormula">@SUPER_FORMULA@mastd.racing</a>)</li>
  <li>MotoGP (<a href="https://mastd.racing/@MotoGP">@MotoGP@mastd.racing</a>)</li>
</ul>

<h3 id="サッカー">サッカー</h3>
<ul>
  <li>Premier League (<a href="https://sportsfeed.me/@EPL">@EPL@sportsfeed.me</a>)
    <ul>
      <li>Manchester United (<a href="https://mas.to/@ManUtd">@ManUtd@mas.to</a>)</li>
    </ul>
  </li>
</ul>]]></content><author><name>やすお</name></author><category term="sns" /><summary type="html"><![CDATA[ニュースやスポーツ系など、役立ちそうなMastodonアカウントを集めてみました。]]></summary></entry><entry><title type="html">ログアウト状態でも外付けストレージはマウント</title><link href="https://www.y4su0.com/2022/07/automount-disks-without-userlogin.html" rel="alternate" type="text/html" title="ログアウト状態でも外付けストレージはマウント" /><published>2022-07-10T14:50:00+09:00</published><updated>2022-07-10T14:50:00+09:00</updated><id>https://www.y4su0.com/2022/07/automount-disks-without-userlogin</id><content type="html" xml:base="https://www.y4su0.com/2022/07/automount-disks-without-userlogin.html"><![CDATA[<p>Macの場合、ローカルユーザーがログアウトすると外付けストレージのマウントが自動的に解除される。
このため、ログアウトした状態だと、リモートからログインしても外付けストレージにアクセスできないし、Time Machineによるバックアップもできないことになる。</p>

<p>ということで、以下のコマンドでローカルユーザーがログインしていなくてもストレージはマウントされたままにしておくと便利 (下のコマンドは横に長いので注意)。</p>

<div class="language-sh highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span><span class="nb">sudo </span>defaults write /Library/Preferences/SystemConfiguration/autodiskmount AutomountDisksWithoutUserLogin <span class="nt">-bool</span> <span class="nb">yes</span>
</code></pre></div></div>

<p>無効にするときは、次のコマンドで。</p>

<div class="language-sh highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span><span class="nb">sudo </span>defaults delete /Library/Preferences/SystemConfiguration/autodiskmount AutomountDisksWithoutUserLogin
</code></pre></div></div>

<p>参考 <a href="https://gist.github.com/jabenninghoff/f13f81c286e914c48942f973f5d15819">Configure OS X to mount external drives at boot · GitHub</a></p>]]></content><author><name>やすお</name></author><category term="categories" /><summary type="html"><![CDATA[Macでユーザーがログアウトしていても外付けストレージをマウントしたままにしておく方法]]></summary></entry><entry><title type="html">Raspberry PiでSambaサーバー</title><link href="https://www.y4su0.com/2021/11/samba-on-raspberrypi.html" rel="alternate" type="text/html" title="Raspberry PiでSambaサーバー" /><published>2021-11-20T18:00:00+09:00</published><updated>2021-11-20T18:00:00+09:00</updated><id>https://www.y4su0.com/2021/11/samba-on-raspberrypi</id><content type="html" xml:base="https://www.y4su0.com/2021/11/samba-on-raspberrypi.html"><![CDATA[<p>Raspberry PiをSambaサーバーとして動かせるようにするまで。</p>

<h2 id="osイメージをmicrosdに書き込み">OSイメージをmicroSDに書き込み</h2>

<p>ここはMac/Windowsでの作業。</p>

<ol>
  <li>“<a href="https://www.raspberrypi.com/software/">Raspberry Pi OS – Raspberry Pi</a>” から Raspberry Pi Imagerをダウンロードしてインストール</li>
  <li>「システム環境設定」 &gt; 「セキュリティとプライバシー」でRaspberry Pi Imagerにフルディスクアクセス権限を付与</li>
  <li>microSDをMacに差し込む。OSだけのインストールなら8GBぐらいでOK。</li>
  <li>Raspberry Pi Imagerを立ち上げて、Operating Systemに”Raspberry Pi OS Lite”、Storageで先ほど差し込んだmicroSDを選択し、”WRITE”で書き込み開始。</li>
</ol>

<p>……が公式手順。</p>

<p>ただ、年に1回あるかないかのRaspberry Piの起動ディスク作成のためだけにわざわざ専用ソフトをインストールするのもアホらしいので、”<a href="https://www.raspberrypi.com/software/operating-systems/">Operating system images – Raspberry Pi</a>“から適当なOSイメージをダウンロードして、<a href="https://www.balena.io/etcher/">balenaEtcher</a>か<code class="language-plaintext highlighter-rouge">dd</code>コマンドあたりで書き込む方がいいかもしれない。</p>

<p>書き込みが終わってもMac/Windows上での作業が続くので、microSDはそのまま。</p>

<h2 id="ヘッドレス設定のための仕込み">ヘッドレス設定のための仕込み</h2>

<p>引き続きMac/Windowsでの作業。</p>

<h3 id="sshの起動設定">sshの起動設定</h3>

<p>microSDのルート直下に<code class="language-plaintext highlighter-rouge">ssh</code>という名前の空のファイルを作成すればsshサーバーが起動する。デフォルトで起動しているわけではないので注意 (ファイルじゃなくて<code class="language-plaintext highlighter-rouge">ssh</code>という名前の空の<strong>フォルダ</strong>でもいけたので、Windowsマシンだとそれでいいかも)。</p>

<div class="language-sh highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span><span class="nb">touch </span>ssh
</code></pre></div></div>
<p>起動したらファイルは自動で削除される模様。</p>

<p>ヘッドレスじゃなくてもよければ、<code class="language-plaintext highlighter-rouge">raspi-conf</code>コマンドで設定。</p>

<p>同じくルート直下に以下の内容の<code class="language-plaintext highlighter-rouge">wpa_supplicant.conf</code>というファイルを作成。</p>

<div class="language-ini highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="py">ctrl_interface</span><span class="p">=</span><span class="s">DIR=/var/run/wpa_supplicant GROUP=netdev</span>
<span class="py">update_config</span><span class="p">=</span><span class="s">1</span>
<span class="py">country</span><span class="p">=</span><span class="s">JP</span>

<span class="py">network</span><span class="p">=</span><span class="s">{</span>
    <span class="py">ssid</span><span class="p">=</span><span class="s">"&lt;SSID名&gt;"</span>
    <span class="py">psk</span><span class="p">=</span><span class="s">"&lt;パスワード&gt;"</span>
<span class="err">}</span>
</code></pre></div></div>

<h2 id="osの設定">OSの設定</h2>

<p>ここからはRaspberry Piでの作業。</p>

<p>microSDをRaspberry Piに差し込んで電源を入れ、完全に起動するまでしばらく待つ。</p>

<p>これで、</p>

<ul>
  <li>ホスト名 <code class="language-plaintext highlighter-rouge">raspberrypi.local</code></li>
  <li>ユーザー名 <code class="language-plaintext highlighter-rouge">pi</code></li>
  <li>パスワード <code class="language-plaintext highlighter-rouge">raspberry</code></li>
</ul>

<p>でアクセスできるようになる。</p>

<p>アクセスできたら、最初にパスワード変更。</p>

<div class="language-sh highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>passwd
</code></pre></div></div>

<p>ホスト名変更、時間帯変更、その他。</p>

<div class="language-sh highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>raspi-config
</code></pre></div></div>
<p>ソフトウェア更新。</p>

<div class="language-sh highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span><span class="nb">sudo </span>apt update
<span class="nv">$ </span><span class="nb">sudo </span>apt upgrade
</code></pre></div></div>

<p>Sambaインストール。</p>

<div class="language-sh highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span><span class="nb">sudo </span>apt <span class="nb">install </span>samba
</code></pre></div></div>

<h2 id="smbconfの編集">smb.confの編集</h2>

<p><code class="language-plaintext highlighter-rouge">nano /etc/samba/smb.conf</code>でsmb.confの編集。(エディタは<code class="language-plaintext highlighter-rouge">vi</code>でもいいけど)</p>

<p>末尾に以下を追記。</p>

<div class="language-ini highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nn">[pi]</span>
  <span class="py">comment</span> <span class="p">=</span> <span class="s">Welcome</span>
  <span class="py">path</span> <span class="p">=</span> <span class="s">/XXXXXXXX</span>
  <span class="py">public</span> <span class="p">=</span> <span class="s">no</span>
  <span class="err">read</span> <span class="py">only</span> <span class="p">=</span> <span class="s">no</span>
  <span class="py">browsable</span> <span class="p">=</span> <span class="s">yes</span>
  <span class="err">force</span> <span class="py">user</span> <span class="p">=</span> <span class="s">pi</span>
</code></pre></div></div>

<p><code class="language-plaintext highlighter-rouge">path = /XXXXXXXX</code>は自分の環境に合わせて適宜書き換え。</p>

<p>Sambaサーバーを再起動。</p>

<div class="language-sh highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">sudo </span>systemctl restart smbd
</code></pre></div></div>

<p>Sambaのユーザーパスワードを設定してSambaサーバーを再起動<br />
(Sambaのユーザーとマシンのユーザーは別物なので、セキュリティ的にはパスワードも別にした方がいい)</p>

<div class="language-sh highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">sudo </span>smbpasswd <span class="nt">-a</span> pi
<span class="nb">sudo </span>systemctl restart smbd
</code></pre></div></div>

<h2 id="動作確認">動作確認</h2>

<p><code class="language-plaintext highlighter-rouge">sudo pdbedit -L</code>で出力に<code class="language-plaintext highlighter-rouge">pi:1000</code>というのがあれば設定完了。</p>]]></content><author><name>やすお</name></author><summary type="html"><![CDATA[Raspberry PiをSambaサーバーとして動かせるようにするまで。]]></summary></entry><entry><title type="html">はがきデザインキットの住所録書き出し</title><link href="https://www.y4su0.com/2021/11/design-kit.html" rel="alternate" type="text/html" title="はがきデザインキットの住所録書き出し" /><published>2021-11-06T22:32:00+09:00</published><updated>2021-11-06T22:32:00+09:00</updated><id>https://www.y4su0.com/2021/11/design-kit</id><content type="html" xml:base="https://www.y4su0.com/2021/11/design-kit.html"><![CDATA[<p>郵便局が配布していた年賀状 (だけじゃないけど) 作成ソフト「はがきデザインキット」の住所録データを書き出してみよう、というお話。</p>

<p>Mac の場合、はがきデザインキットの住所録の本体は <code class="language-plaintext highlighter-rouge">~/Library/Preferences/designKit.&lt;英数字の列&gt;/Local Store/yubin10.db</code>。<br />
(Windows だとファイルがあるのは <code class="language-plaintext highlighter-rouge">~\AppData\Roaming\designKit.&lt;英数字の列&gt;\Local Store</code> らしいです)</p>

<p>まずターミナルで <code class="language-plaintext highlighter-rouge">sqlite3</code>　を使って <code class="language-plaintext highlighter-rouge">yubin10.db</code> を開きます。</p>

<div class="language-sh highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>sqlite3 yubin10.db
SQLite version 3.36.0 2021-06-18 18:58:49
Enter <span class="s2">".help"</span> <span class="k">for </span>usage hints.
</code></pre></div></div>

<p>sqlite3 のコマンドで中身を確認します。Mac なら <code class="language-plaintext highlighter-rouge">sqlite3</code> は <code class="language-plaintext highlighter-rouge">/usr/bin/sqlite3</code> としてデフォルトで入っています。(WindowsだったらWSLあたりを使うのが今風かな?)</p>

<div class="language-sql highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">sqlite</span><span class="o">&gt;</span> <span class="p">.</span><span class="n">tables</span>
<span class="n">post_app_address_category_mst</span>    <span class="n">post_app_adressbook</span>
<span class="n">post_app_address_category_tbl</span>    <span class="n">post_app_bookmark_tbl</span>
<span class="n">post_app_address_history_tbl</span>     <span class="n">post_app_config</span>
<span class="n">post_app_addresslayout</span>           <span class="n">post_app_renmei</span>
<span class="n">post_app_addresslayout_template</span>
</code></pre></div></div>

<p><code class="language-plaintext highlighter-rouge">post_app_adressbook</code> というテーブルがあるのを確認。</p>

<div class="language-sql highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">sqlite</span><span class="o">&gt;</span> <span class="k">select</span> <span class="o">*</span> <span class="k">from</span> <span class="n">post_app_adressbook</span>
</code></pre></div></div>
<p>で住所録データがぞろぞろと画面出力されるので、あとはエディタにコピペするなりすればOK。<br />
また、連名のデータは住所録データとは別に <code class="language-plaintext highlighter-rouge">post_app_renmei</code> に入っています。</p>

<p>出力内容にはちょっと癖があって、項目間の区切りは <code class="language-plaintext highlighter-rouge">,</code> ではなく、<code class="language-plaintext highlighter-rouge">|</code>　だったり、各行の後ろの方によく分からない文字列があったり (たぶん、前年までの年賀状の送受のデータか何か) しますが、うまいこと加工すれば再利用できると思います。</p>

<p><a href="/">Back to top</a></p>

<hr />

<p>ここからは余談。</p>

<p>はがきデザインキットの最新バージョンでも住所録書き出しはできる (というか、住所録書き出ししかできない) のですが、うちの場合はこの機能で書き出すと日本語文字が “?” に置換されていました。</p>

<p><code class="language-plaintext highlighter-rouge">hexdump</code> にファイルを食わせて確認したところ、いわゆる文字化けで日本語文字が “?” に見えているだけ、というのではなく完全に置き換わった状態で、気付かなかったら住所録データをロストするところでした。</p>

<p>うちのはがきデザインキットは Big Sur で一旦動かなくなったのを、年賀状作るために何かごにょごにょして無理やり動かしていたので、それがよくなかったのかも。</p>

<p><a href="/">Back to top</a></p>]]></content><author><name>やすお</name></author><summary type="html"><![CDATA[郵便局が配布していた年賀状 (だけじゃないけど) 作成ソフト「はがきデザインキット」の住所録データを書き出してみよう、というお話。]]></summary></entry><entry><title type="html">Jetson NanoでJupyter Server</title><link href="https://www.y4su0.com/2021/08/jetson-jupyter-server.html" rel="alternate" type="text/html" title="Jetson NanoでJupyter Server" /><published>2021-08-12T21:54:00+09:00</published><updated>2021-08-12T21:54:00+09:00</updated><id>https://www.y4su0.com/2021/08/jetson-jupyter-server</id><content type="html" xml:base="https://www.y4su0.com/2021/08/jetson-jupyter-server.html"><![CDATA[<p>Jetson Nano上で機械学習関連の環境整備して、Jupyter Server動かして、PCからいろいろできるようにしてみよう、というお話。</p>

<p>環境整備に手間かけたくないので、Dockerを使います。</p>

<h2 id="前準備">前準備</h2>

<p>Jetson Nanoの準備については、公式の “<a href="https://developer.nvidia.com/embedded/learn/get-started-jetson-nano-devkit">Getting Started With Jetson Nano Developer Kit : NVIDIA Developer</a>” とか、<a href="/2021/07/jetson-nano-jp45.html">このサイト上のポスト</a>あたりを見てください。</p>

<h2 id="dockerコンテナの導入起動">Docker　コンテナの導入〜起動</h2>

<p>だいたい “<a href="https://ngc.nvidia.com/catalog">Catalog : NVIDIA NGC</a>” にある “<a href="https://ngc.nvidia.com/catalog/containers/nvidia:l4t-ml">NVIDIA L4T ML : NVIDIA NGC</a>” の記述通り。</p>

<p>(初回起動時のみ) Jetsonのターミナルで以下のコマンドを入力してコンテナをpull。</p>

<div class="language-sh highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">sudo </span>docker pull nvcr.io/nvidia/l4t-ml:r32.6.1-py3
</code></pre></div></div>

<p>以下のコマンドでコンテナを起動。例によって初回は起動まで時間がかかります。</p>

<div class="language-sh highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">sudo </span>docker run <span class="nt">-it</span> <span class="nt">--rm</span> <span class="nt">--runtime</span> nvidia <span class="nt">--network</span> host nvcr.io/nvidia/l4t-ml:r32.6.1-py3
</code></pre></div></div>

<p>これでJupyter Labが起動します。</p>

<h2 id="jupyter-serverの利用">Jupyter Serverの利用</h2>

<h3 id="ブラウザから">ブラウザから</h3>

<p>同じLAN上の別のPCからJetson Nanoの8888番ポート (要するに <code class="language-plaintext highlighter-rouge">http://&lt;machine name&gt;:8888</code>) にブラウザでアクセスするとJupyter Labのパスワード認証画面に入れます。</p>

<p>Jetsonのターミナルの指示通り”nvidia”というパスワードで入れば、Jupyter Labの画面が開いてPytorchとかTensorFlowとか使えるようになります。</p>

<p>これが多分基本的な使い方。</p>

<h3 id="vscodeからのアクセス">VSCodeからのアクセス</h3>

<p>ブラウザからのアクセスだとコマンド補完が効かずあまり使い物にならないので、以下VSCodeからアクセスする方法です。動作確認で使ったVSCodeのバージョンは1.59.0。</p>

<ol>
  <li>既存の or 新規作成したJupyter Notebookを開いた状態にしておく</li>
  <li>コマンドパレットから “Jupyter: Specify local or remote Jupyter server for connection” を選択</li>
  <li>“Existing” を選択</li>
  <li>Jupyter Serverのアドレス (例えば、<code class="language-plaintext highlighter-rouge">http://&lt;machine name&gt;:8888</code>) を入力</li>
  <li>「httpsじゃないアクセスでtoken使わなかったらセキュリティ上の問題がどうこう」(意訳)というアラートが出るが、構わずYesを選択</li>
  <li>パスワード入力が求められるので、”nvidia”と入力</li>
</ol>

<p>これでVSNoteからJetson Nano上で動作するJupyter Serverが使えるようになります。</p>

<h2 id="その他">その他</h2>

<p><code class="language-plaintext highlighter-rouge">docker</code>コマンドで<code class="language-plaintext highlighter-rouge">sudo</code>が嫌、という方は「<a href="https://qiita.com/DQNEO/items/da5df074c48b012152ee">Dockerコマンドをsudoなしで実行する方法 - Qiita</a>」あたりを参考にどうぞ。</p>]]></content><author><name>やすお</name></author><summary type="html"><![CDATA[Jetson Nano上で機械学習関連の環境整備して、Jupyter Server動かして、PCからいろいろできるようにしてみよう、というお話。]]></summary></entry><entry><title type="html">コマンドプロンプトに付いてくる (base) への対応</title><link href="https://www.y4su0.com/2021/07/(base)-anaconda.html" rel="alternate" type="text/html" title="コマンドプロンプトに付いてくる (base) への対応" /><published>2021-07-23T00:00:00+09:00</published><updated>2021-07-23T00:00:00+09:00</updated><id>https://www.y4su0.com/2021/07/(base)-anaconda</id><content type="html" xml:base="https://www.y4su0.com/2021/07/(base)-anaconda.html"><![CDATA[<p>mac に anaconda をインストールした時に、コマンドプロンプト先頭に↓こんな感じで (base) と付くのが鬱陶しいのでその対策です。</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>(base)yasuo@iMac:~ $ _
</code></pre></div></div>
<p>macOS Big Sur でしか確認できていませんが、多分、mac 以外でも同じことが起こって、同じ対策でいけるはず。</p>

<p>“<a href="https://qiita.com/Atsushi_/items/253d3df5be8ce799dbf0">MacOS(OSX) - macのターミナルに(base)と表示され場合の対応方法 - Qiita</a>” とか “<a href="https://askubuntu.com/questions/1026383/why-does-base-appear-in-front-of-my-terminal-prompt">command line - Why does “(base)” appear in front of my terminal prompt? - Ask Ubuntu</a>の内容ほぼそのままです。</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>conda deactivate
conda config <span class="nt">--set</span> auto_activate_base False
</code></pre></div></div>

<hr />

<p>結論: anaconda が .zshrc に余計なことを書くのが悪い。</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c"># &gt;&gt;&gt; conda initialize &gt;&gt;&gt;</span>
<span class="c"># !! Contents within this block are managed by 'conda init' !!</span>
<span class="nv">__conda_setup</span><span class="o">=</span><span class="s2">"</span><span class="si">$(</span><span class="s1">'/usr/local/Caskroom/miniconda/base/bin/conda'</span> <span class="s1">'shell.bash'</span> <span class="s1">'hook'</span> 2&gt; /dev/null<span class="si">)</span><span class="s2">"</span>
<span class="k">if</span> <span class="o">[</span> <span class="nv">$?</span> <span class="nt">-eq</span> 0 <span class="o">]</span><span class="p">;</span> <span class="k">then
    </span><span class="nb">eval</span> <span class="s2">"</span><span class="nv">$__conda_setup</span><span class="s2">"</span>
<span class="k">else
    if</span> <span class="o">[</span> <span class="nt">-f</span> <span class="s2">"/usr/local/Caskroom/miniconda/base/etc/profile.d/conda.sh"</span> <span class="o">]</span><span class="p">;</span> <span class="k">then</span>
        <span class="nb">.</span> <span class="s2">"/usr/local/Caskroom/miniconda/base/etc/profile.d/conda.sh"</span>
    <span class="k">else
        </span><span class="nb">export </span><span class="nv">PATH</span><span class="o">=</span><span class="s2">"/usr/local/Caskroom/miniconda/base/bin:</span><span class="nv">$PATH</span><span class="s2">"</span>
    <span class="k">fi
fi
</span><span class="nb">unset </span>__conda_setup
<span class="c"># &lt;&lt;&lt; conda initialize &lt;&lt;&lt;</span>
</code></pre></div></div>]]></content><author><name>やすお</name></author><summary type="html"><![CDATA[mac に anaconda をインストールした時に、コマンドプロンプト先頭に (base) と付くのが鬱陶しいのでその対策です。]]></summary></entry><entry><title type="html">GitHub Pages をローカルで表示確認</title><link href="https://www.y4su0.com/2021/07/jekyll-on-docker.html" rel="alternate" type="text/html" title="GitHub Pages をローカルで表示確認" /><published>2021-07-23T00:00:00+09:00</published><updated>2021-07-23T00:00:00+09:00</updated><id>https://www.y4su0.com/2021/07/jekyll-on-docker</id><content type="html" xml:base="https://www.y4su0.com/2021/07/jekyll-on-docker.html"><![CDATA[<h2 id="やりたいこと">やりたいこと</h2>

<p><a href="https://pages.github.com">GitHub Pages</a> を使うと、</p>

<ul>
  <li>レポジトリに置いてある Markdown 記法で書いたファイルが html に自動変換される</li>
  <li>http://y4su0.github.io みたいな URL で公開される</li>
  <li>当たり前のことながら、変更の履歴が残る</li>
</ul>

<p>と、お手軽にWebサイトを構築できて便利なんですが、細かい設定をやろうとすると、<code class="language-plaintext highlighter-rouge">_config.yml</code> をいじったり、テンプレートをいじったりするので、可能であればコミットする前にローカル環境でお試ししておきたい。</p>

<p>ということで、Docker を使ってローカルで GiuHub Pages の環境を作ってみましょう、という話。</p>

<h2 id="準備">準備</h2>

<ol>
  <li><a href="https://www.docker.com/products/docker-desktop">Docker Desktop</a> をインストール</li>
  <li>Docker image を取得
    <div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>docker pull jekyll/jekyll:pages
</code></pre></div>    </div>
  </li>
  <li>jekyll テーマの関連ファイルを <a href="https://pages.github.com/themes/">Supported themes / GitHub Pages</a> あたりからリンクを辿っていってダウンロード</li>
</ol>

<p>以下、GitHub Pages の関連ファイルは <code class="language-plaintext highlighter-rouge">~/githubpages/</code> 以下に置く or 置かれているという想定です。</p>

<h2 id="環境を立ち上げる">環境を立ち上げる</h2>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>docker run <span class="nt">--rm</span> <span class="nt">--volume</span><span class="o">=</span><span class="s2">"~/githubpages/:/srv/jekyll"</span> <span class="nt">--it</span> <span class="nt">-p</span> 4000:4000 jekyll serve <span class="nt">--watch</span>
</code></pre></div></div>

<p>これで <code class="language-plaintext highlighter-rouge">~/githubpages/</code> 以下のファイルを元にページが生成されて、https://localhost:4000 にアクセスすれば表示を確認できます。</p>

<p>また、<code class="language-plaintext highlighter-rouge">--watch</code> オプションを付けておけば、ファイルに変更があるたびにページがリアルタイムで再生成されるので、ブラウザをリロードすれば変更後の表示確認が即できるようになります。</p>

<p>あとは、<code class="language-plaintext highlighter-rouge">.zshrc</code> あたりで</p>

<div class="language-sh highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">alias </span><span class="nv">githubpages</span><span class="o">=</span><span class="s1">'docker run --rm --volume="~/githubpages/:/srv/jekyll" --it -p 4000:4000 jekyll serve --watch'</span>
</code></pre></div></div>

<p>とかやっておくと便利。</p>

<p>表示を確認できたら、そのまま <code class="language-plaintext highlighter-rouge">git commit</code> →　<code class="language-plaintext highlighter-rouge">git push</code> で公開完了。</p>

<h2 id="その他">その他</h2>

<p>GitHub Pages のサーバーの方では、各ページのYAML Front Matter での <code class="language-plaintext highlighter-rouge">layout</code> あたりの項目とか、<code class="language-plaintext highlighter-rouge">_config.yml</code> の　<code class="language-plaintext highlighter-rouge">plugins</code> あたりをちゃんと書かなくても良きに計らってくれますが、ローカルで生成する際はちゃんとしておかないとダメみたいです。</p>

<p>あと、余計なお世話ですが、テーマ関係をいじらないのであれば <code class="language-plaintext highlighter-rouge">~/githubpages</code> 以下のテーマ関係のディレクトリを <code class="language-plaintext highlighter-rouge">.gitignore</code> に書き込んでおいた方がいいかもしれません。</p>

<h2 id="参考">参考</h2>

<ul>
  <li><a href="https://qiita.com/shifumin/items/8d5d26dfa18d4b62d873">JekyllをDokcer上で動かしてGitHub Pagesのローカル環境での確認を楽する - Qiita</a></li>
</ul>]]></content><author><name>やすお</name></author><summary type="html"><![CDATA[Docker で jekyll 使って、GitHub Pages をローカルでお試ししてみるためのあれこれ。]]></summary></entry><entry><title type="html">Jetson Nanoのセットアップ (JetPack 4.5以降対応)</title><link href="https://www.y4su0.com/2021/07/jetson-nano-jp45.html" rel="alternate" type="text/html" title="Jetson Nanoのセットアップ (JetPack 4.5以降対応)" /><published>2021-07-16T00:00:00+09:00</published><updated>2021-07-16T00:00:00+09:00</updated><id>https://www.y4su0.com/2021/07/jetson-nano-jp45</id><content type="html" xml:base="https://www.y4su0.com/2021/07/jetson-nano-jp45.html"><![CDATA[<p>手元の Jetson Nano の再セットアップをやったので、手順のメモを残しておきます。</p>

<ul>
  <li>SSH or RDP を使ってリモートで使う</li>
  <li>Python で機械学習をいろいろやってみる</li>
</ul>

<p>というあたりが目指す最終形です。
Jetson Nano 初期モデルでしか試していませんが、Jetson Nano 2GB でもほぼ同じ手順で行けるはず。
JetPackのバージョンは4.5前提。2021/08/04 リリースの 4.6 でも大丈夫だったけど、4.5より古いと多分ダメ。</p>

<p><a href="/">back</a></p>

<h2 id="初期設定">初期設定</h2>

<p>起動するところまでは <a href="https://developer.nvidia.com/embedded/learn/get-started-jetson-nano-devkit" title="Getting Started with Jetson Nano Developer Kit">公式ドキュメント</a> 通りにセットアップを進めます。特に引っかかることはないと思いますが、言語設定は English にしておけば余計な気を使わなくて済みます。
あと、公式ドキュメントには <a href="https://developer.nvidia.com/embedded/learn/get-started-jetson-nano-devkit#setup-headless" title="Initial Setup Headless Mode">ヘッドレスセットアップの方法</a> についても記載されていますが、うちの macOS Big Sur ではシリアルデバイスが見つからず、ヘッドレスセットアップは試せていません。Big Sur以降はセキュリティの何とかで <a href="https://infornography.blue/mac/macos-big-sur-and-kext/" title="あまり知られていないmacOS Big Sur以降で利用不可になるkext | INFORNOGRAPHY">USBシリアルが使えないらしい</a> です。</p>

<h2 id="必要なソフトのインストール">必要なソフトのインストール</h2>

<p>まずはソフトウェアのアップデート。</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">sudo </span>apt update
<span class="nb">sudo </span>apt upgrade
</code></pre></div></div>

<p>SSH と avahi-daemon</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">sudo </span>apt <span class="nb">install </span>ssh avahi-daemon
<span class="nb">sudo </span>systemctl restart ssh
<span class="nb">sudo </span>systemctl restart avahi-daemon
</code></pre></div></div>

<p>ここまでやれば、Jetson Nano のキーボードその他は外しても大丈夫です。</p>

<p>(JetPack 4.6 だと SSH と avahi-daemon はデフォルトでインストールされているんで、1行目の <code class="language-plaintext highlighter-rouge">sudo apt install ssh avahi-daemon</code> は不要。<code class="language-plaintext highlighter-rouge">systemctl restart</code> も「念のため」ぐらいの意味しかないかも)</p>

<p>avahi-daemon があれば、初期設定中に設定したマシン名でログインできます (例えば、<code class="language-plaintext highlighter-rouge">ssh 192.168.xxx.xxx</code> ではなくて、<code class="language-plaintext highlighter-rouge">ssh jetson</code> みたいな感じ)。</p>

<h2 id="リモートでの作業">リモートでの作業</h2>

<p>ここから先は、母艦となるPC上での作業。
まずはSSH公開鍵のコピー</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>ssh-copy-id <span class="nt">-i</span> .ssh/id_rsa &lt;machine-name&gt;
</code></pre></div></div>
<p><code class="language-plaintext highlighter-rouge">.ssh/id_rsa</code> のところは <code class="language-plaintext highlighter-rouge">.ssh/id_rsa.pub</code> と書きたくなりますが、上記の通りのコマンドで良きに計らってくれます。</p>

<p>ここで ssh でログイン。
ディスプレイマネージャの変更 (以下の手順は、”<a href="https://www.jetsonhacks.com/2020/11/07/save-1gb-of-memory-use-lxde-on-your-jetson/">Save 1GB of Memory! Use LXDE on your Jetson - JetsonHacks</a>” の内容そのままです)。</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">sudo </span>dpkg-reconfigure lightdm
</code></pre></div></div>

<p>ディスプレイマネージャの選択画面が出るので、<code class="language-plaintext highlighter-rouge">lightdm</code> を選択。
(Jetson Nano 2GB だとデフォルトが lightdm だそうなので、ここのステップは無視してください)</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">sudo </span>apt <span class="nb">install </span>xrdp
<span class="nb">echo </span>lxsession <span class="o">&gt;</span> ~/.xsession
<span class="nb">sudo </span>systemctl restart xrdp
</code></pre></div></div>

<p>これでリモートデスクトップが使えます。</p>

<p>ここから先は自力でいろいろインストールして環境を構築していくのが定番の手順でしたが、Docker 使った方が圧倒的に楽なので、この辺りの情報をいろいろ見てください。</p>

<ul>
  <li><a href="https://github.com/dusty-nv/jetson-inference/blob/master/docs/aux-docker.md">jetson-inference: Hello AI World</a> (物体認識、物体検出、姿勢認識、その他もろもろ)</li>
  <li><a href="https://ngc.nvidia.com/catalog/containers">Catalog : NVIDIA NGC</a>
    <ul>
      <li><a href="https://ngc.nvidia.com/catalog/containers/nvidia:l4t-ml">NVIDIA L4T ML : NVIDIA NGC</a> (機械学習関連一通り勢揃い)</li>
      <li><a href="https://ngc.nvidia.com/catalog/containers/nvidia:l4t-tensorflow">NVIDIA L4T TensorFlow : NVIDIA NGC</a> (みんな大好き TensorFlow)</li>
    </ul>
  </li>
</ul>

<p><a href="/">back</a></p>

<hr />

<p>以下、単なる記録として。</p>

<h2 id="python関係">Python関係</h2>

<p>pipでのモジュールインストールだとバイナリファイル周りの依存関係がいろいろ面倒くさいので、aptでインストール</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">sudo </span>apt <span class="nb">install </span>python3-pip python3-numpy python3-pandas python3-matplotlib python3-sklearn python3-ipykernel
</code></pre></div></div>

<p>Tensorflow のインストールは基本的に <a href="https://docs.nvidia.com/deeplearning/frameworks/install-tf-jetson-platform/index.html" title="Installing TensorFlow For Jetson Platform :: NVIDIA Deep Learning Frameworks Documentation">公式ドキュメント</a> の手順を踏めばいいのですが、上の流れでPythonモジュールはいろいろインストールしているので、途中段階をすっ飛ばしていきなり</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">sudo </span>pip3 <span class="nb">install</span> <span class="nt">--pre</span> <span class="nt">--extra-index-url</span> https://developer.download.nvidia.com/compute/redist/jp/v45 tensorflow
</code></pre></div></div>

<p>でも行けるかもしれません。</p>

<h2 id="その後">その後</h2>

<p>あとはこの辺りの情報をいろいろ</p>

<ul>
  <li><a href="https://developer.nvidia.com/embedded/community/jetson-projects">Jetson Community Projects / NVIDIA Developer</a></li>
  <li><a href="https://www.tensorflow.org/">Tensorflow　公式サイト</a></li>
</ul>

<p><a href="/">back</a></p>]]></content><author><name>yasuo ogiuchi</name></author><category term="tech" /><summary type="html"><![CDATA[手元の Jetson Nano の再セットアップをやったので、手順のメモを残しておきます。]]></summary></entry></feed>