オッサンはDesktopが好き

自作PCや機械学習、自転車のことを脈絡無く書きます

アラフォーのオッサンがMac始めます!

 こんにちは.changです. 随分久しぶりの投稿になってしまいました.

 遅い夏休みも乗鞍中止で暇になってしまったの為,この機に,前からやってみたかったMac導入に挑もうと思います.

0. Apple履歴

 Linuxをやって来た跳ね返りなのか,Apple製品を昔から避けて来ました. iPodも使ったことがありません.

 転機(?)は社用携帯でiPhoneを使うようになったことです. プライベートでのスマホ導入が遅くてですね...(汗). エンジニアが新しいモノ嫌いという良くあるパターンに陥っていました. 一度米国ブランドのAndoroidを買ったのですが,使い難くてガラケーに戻したりもしました. 友達いなくて出不精だと,スマホの必要性に駆られないのです.

 で,2018年の暮れ頃に社用でiPhoneを使い始めたのですが,,,使い易くて吃驚しました. 直ぐに個人用を買いました. 今となっては,iPhone無しでは移動も買い物も出来ないです.

1. いざ開封

 買ったのはMacBook Pro 13-inch, M1 chipです. ヨドバシで買いました. Appleストアで買っても良かったのですが,古い人間なので一応モノを見てから買おうかなと.

f:id:changlikesdesktop:20210902094438j:plain:w400
開封前.お店に在庫があり,その場ゲットして来ました.

f:id:changlikesdesktop:20210902094826j:plain:w400
開けるとこんな感じで,本体のみって感じです.

f:id:changlikesdesktop:20210902095139j:plain:w400
とりあえず,Wifi設定と,Apple IDの登録だけしました.

2. Appを入れる

Kaspersky Internet Security

 ウィルス対策がいるのか疑問ですが,Windowsでライセンス持っているので入れました. 今は未だ試用版を使ってます. 正式運用はもう少し調べてからにしようかな.

f:id:changlikesdesktop:20210902102433j:plain:w200

OneDrive

 iCloudに課金していないので,ストレージはOneDriveを使おうと思っています. iCloudを食い荒らしている写真をOneDriveに移動したらエラい苦労したので,次の記事で紹介しようと思います.

f:id:changlikesdesktop:20210902102106j:plain:w200

3. 結び

 この短い記事を書くのに早速大苦戦です. スクロールすら出来ない💦 ボチボチでやっていきます. これを機にWindows離れしてやるぜ‼️.

赤城オフロード3h耐久 ソロ8位

 こんにちは.changです. 既に一週間前の話になりますが,赤城オフロード3時間耐久ソロに参加しました. 結果は8位. 勝ちを狙って走りましたが,なかなか厳しかったです.

f:id:changlikesdesktop:20210725050512p:plain:w400
レース会場(ほぼ撤収済み).常設コースもあるとか.

赤城オフロード

 群馬県の山奥で開催される,オフロードの耐久レースです. シクロバイクでもマウンテンバイクでも参加できたり,BBQをやりながら走れたりとお祭り感が強いですが,コースは本格的. 昨年はチームで出場し,2位に入りました. 登りが長めなので,僕に向いていると思っていました.

 今年もチーム戦に混ぜてもらおうかと思ったのですが,,,誘惑に駆られて(?)ソロでの出場を決めました. ロードでも毎回コーナーに苦しむ位なので,バイクコントロールは苦手です. その辺の改善・強化をしつつ,体力勝負で勝負に絡もうと思って臨みました.

前日まで

 元々,オフシーズンのトレーニングで始めたマウンテンバイクです. 夏はトレーニングしていませんし,冬のシクロクロス大会も根こそぎ中止でした. 昨年の赤城以降,通勤用バイクになり下がっていました. レフティーが泣くなぁ.

 今回肌で実感しましたが,夏のオフロードは厳しいです. 一寸未舗装路に入っただけでも,虫の巣窟に脚を踏み入れたかの様になります. 通勤でやろうものなら虫刺され&草まみれで仕事になりません. 一週間前の日曜に山に入ったら,何とヒルに足を噛まれました(泣). 自戒ですが,夏は自然を避け,ケチらずに専用施設に赴きましょう.

 更に直前,替えたばかりのタイヤがパンクして大慌てになりました. チューブレスはこういう時ツラい... 弾丸で撃ち抜かれても走れるという強力なシーラントをお店の方に入れていただき,事なきを得ました.

f:id:changlikesdesktop:20210725050644p:plain:w400
超強力シーラント

レース展開

 レースが始まると,スタートダッシュで10数名が抜け出します. 付いて行こうか一瞬迷いましたが,マイペースに切り替えました. ロードと違ってスリップストリームが効かない事は解っていましたし,抜け出した全員が最後まで維持できるペースでは無いと思いました. 黙々とペースを刻み,前を目指します.

 周回コースでチーム参加者と入り乱れて走るので,レース中は自分の順位が殆ど判りません. 1h位走ったところで,抜け出しに参加していた(他店の)チームメートと合流しました. 前に何人いるか訊いたら,10名以上という応えが... 若干心折れましたね.

 勝った選手には何回も抜かれたので周回遅れになっていると思っていたのですが,結果的には一周しか差がありませんでした. どうやら,多くの選手が休憩を取っていた様です. ピットから戻ったところで抜かれていたのですね.

 ピットイン無しで走り切るつもりでボトルを2本持って走りましたが,重量面で不利だったかも知れないです. 耐えかねて一度ボトルを取りに行ったのですが,予備が見つからなくて2分程ロスしました. 補給を円滑にして,ついでに冷たい水でもかぶってリフレッシュしすれば,ピットインしながらの方が有利なのかも. その辺は改善の余地がありますが,,,来年も走る気になるかはその時の自分次第です...(笑).

むすび

 腰の痛みがようやくとれて来ました. 昨日やっと洗車も済ませ,一段落した感じです.

 オリンピックも始まって楽しいことだらけなので,少し気が緩みそうな気もしています. 7月一杯は少しリラックスしますが,8月に入ったら乗鞍に向けてまた追い込んでいこうと思います.

f:id:changlikesdesktop:20210725052327p:plain:w400
黄色のグリップがお気に入り

Tensorflow v1とTensorflow v2を共存させる

 こんにちは.changです.

 Tensorflow ver. 1.14.0を長く使っていますが,Tensorflow 3D*1を試す為にv2を導入することにしました. 今までに書いたソースは同じ環境で使い続けたいので,v1とv2を共存させます.

 Pythonの開発環境を複数持つ方法はいくつか在ります.

(1) ハードディスクを分ける

 古臭いやり方ですが,ドライバレベルから環境を分ける一番確実な方法です. 僕の場合,システムファイル用とデータファイル用にHDDを分けているので,システムファイル側だけを変えればソースは共有できます. 500GBのSDDも5000円位で買える時代ですし,僕的にはプランAです.

 これをやるつもりでSDDも買ったのですが,「一度は今風の仮想環境を試そう」と思い立ったので見送りにします.

(2) Dockerを使う

 王道のやり方という事は知っているのですが,恥ずかしながらやったことがありません. これもどこかで試すつもりですが,今回はより簡単な(3)を採用します.

(3) vertualenvを使う

 Pythonを複数ver.持つための仮想環境です. 今回はこれを試します.

 Tensorflow ver.1.14.0の対応CUDAは ver. 10.0,今回導入するTensorflow ver. 2.3.0の対応CUDAはver. 10.1です*2. vertualenvの中にCUDAを入れることは出来ません. ですので,複数ver.のCUDAを同一PC内に入れ,かつ干渉させないことが,今回の一つのポイントになります.

(4) GCPを使う

 インスタンスを複数立てる事で,簡単に実現出来ます. これも流行りの方法ですが,一応,自作PCブログですので...

0. 今回やること

ベース環境

基本方針

  • vertualenvを使って,Tensorflow ver 1.14.0とTensorflow ver 2.3.0を同一PCで使用する
  • Tensorflow ver. 1.14.0ではCUDA 10.0を,Tensorflor ver. 2.3.0ではCUDA 10.1を使用する
  • NVidiaドライバはver. 450.102.04で統一とする(ドライバver.を分ける必要がある場合には,vertualenvでは出来ません)

1. CUDAのインストール

 既に10.0が入っている状態から初めます.

f:id:changlikesdesktop:20210622100323p:plain:w400
既存のCUDA 10.0

 ここ*3からCUDA10.1を,ここ*4からcuDNN 7.6.5をダウンロードします. この方*5によると,ver.違いのCUDAはそれぞれ別のディレクトリにインストールされて干渉しないそうです. 別々に入っていれば,Tensorflow側で適合ver.を勝手に選ぶとのこと. なので,このままインストールしていきます.

CUDA 10.0へのシンボリックリンクを消す

f:id:changlikesdesktop:20210622101639p:plain:w500
CUDA 10.0へのシンボリックリンクが在ったので,削除

$ sudo unlink /usr/local/cuda

CUDA10.1をインストールする

$ sudo apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub  
$ sudo dpkg -i cuda-repo-ubuntu1804-10-1-local-10.1.105-418.39_1.0-1_amd64.deb  
$ sudo apt update  
$ sudo apt install cuda-toolkit-10-1
$ reboot

cuDNN 7.6.5をインストールする

$ sudo dpkg -i libcudnn7_7.6.5.32-1+cuda10.1_amd64.deb
$ sudo dpkg -i libcudnn7-dev_7.6.5.32-1+cuda10.1_amd64.deb
$ sudo dpkg -i libcudnn7-doc_7.6.5.32-1+cuda10.1_amd64.deb

入ったか確認すると...何故かCUDA 10.2も入っとる???ここでまたシンボリックリンクを消しておく

$ ls /usr/local
$ sudo unlink /usr/local/cuda

f:id:changlikesdesktop:20210622113145p:plain:w500
/usr/localを確認

.bashrcを編集して環境変数を追加

export PATH="/usr/local/cuda-10.0/bin:$PATH"
export PATH="/usr/local/cuda-10.1/bin:$PATH"
export LD_LIBRARY_PATH="/usr/local/cuda-10.0/lib64:$LD_LIBRARY_PATH"
export LD_LIBRARY_PATH="/usr/local/cuda-10.1/lib64:$LD_LIBRARY_PATH"

nvcc を打ってみると...10.1に変わっている

f:id:changlikesdesktop:20210622142625p:plain:w400
nvccの結果.CUDA 10.0が無くなっていないか不安になる

CUDA 10.0が無事か試す

$ python3  
>>> from tensorflow.python.client import device_lib  
>>> device_lib.list_local_devices()

f:id:changlikesdesktop:20210622114152p:plain:w500
libcudart.so.10.0が読み込まれているのでOK

2. Tensorflow v2のインストール

 /Python/tf2_env に環境を作ります

$ sudo apt update
$ sudo apt install virtualenv
$ cd ~/Python
$ mkdir tf2_env
$ virtualenv -p python3 tf2_env
$ source ./tf2_env/bin/activate

f:id:changlikesdesktop:20210622120253p:plain:w500
こんな感じでtf2_envに入る

pipでインストールする

$ pip3 install tensorflow==2.3.0

CUDA 10.1が呼び出されるか試すと,なんか失敗しているっぽい

$ python3  
>>> from tensorflow.python.client import device_lib  
>>> device_lib.list_local_devices()

f:id:changlikesdesktop:20210622133938p:plain:w500
libcublas.soが見つからないみたい

先刻何故か入っていると言ったCUDA 10.2の中に在るっぽいので,.bashrcにパスを追加する

export LD_LIBRARY_PATH="/usr/local/cuda-10.2/targets/x86_64-linux/lib:$LD_LIBRARY_PATH"

こんどは行けたっぽい

f:id:changlikesdesktop:20210622141359p:plain:w500
libcublas.soがロードされた

仮想環境から抜ける

$ deactivate

 取り敢えず,これで使ってみようと思います...(^^).

 

富士山ヒルクライム 69分22秒

 こんにちは.changです.

 富士山ヒルクライムに出場しました. 結果は69分22秒. 自己ベストを大幅に更新することができました(^^)

f:id:changlikesdesktop:20210607192450p:plain:w400
富士ヒルクライム2021. スタート前から小雨が降りました

0. レース準備

 富士ヒルは2年前に初めて出場し,もう少しというところでシルバーを逃していました*1. 年初には”富士ヒルゴールド(1時間5分)”を目標に掲げましたが,残念ながら,今の実力では厳しい事が分かっていました. このため1時間10分に目標を修正しました.

平日練(ローラー)

 1時間10分という事はほぼ1時間なので,FTPを維持することが最善と考えました. そこで富士チャレ*2後、平日練をFTP近辺を維持するワークアウト中心に替えました. ちなみに,富士チャレ前は無酸素域のワークアウトとZwiftレースをやっていました.

f:id:changlikesdesktop:20210607201326p:plain:w400
GCNから.キツくて嫌いなので当分やりません(笑)

f:id:changlikesdesktop:20210607193135p:plain:w400
これもGCN.L5の下側

f:id:changlikesdesktop:20210607193231p:plain:w400
Zwift Academyの中の一つ.FTP周辺をまんべんなく.レース週はこれをやってました

週末練(実走)

 土日の実走も少し変えました.

 普段は150 km程のロングに出ることが多いですが,ヒルクライムを意識して高強度のタイムトライアルを取り入れました. 15分位で登れる近所の林道が丁度開けたので,これを全力で3本走るトレーニングをしました.

 ヒルクライム前はどうしても長い登りに行きたくなりますが,1ヵ月前の試走を最後に敢えて控えました. 1時間のヒルクライムを一人で集中して走る事は難しいからです. 試走で(料金所から)1時間15分掛かっていたので,再トライでタイムを更新して安心したい気持ちもありましたが,,,我慢しました.

 トレーニングの成果か,少なくとも20分は4.5倍を維持できる感覚をつかんでいました. この感覚を頼りに,サイコンとにらめっこをしながら登る計画でした.

減量

 2年前は51kgまで絞ってました. 筋肉量が増えた所為で,今ここに戻すことは難しいです. 体脂肪率が5%位になり,日常生活に支障をきたすと思います. このため,52kg & 体脂肪率7%をターゲットにしました.

 落としたのは1~1.5kg程度ですが,トレーニングをこなしながらなのでそこそこ辛かったです. レース週の木曜日に目標をクリアしてからは,敢えて体重計に乗るのをやめて体調維持を意識しました.

1. レース当日

 コロナ過での開催ということで,チャンピオンクラス以外は号砲無しのフリースタートです. 僕は第5スタート(7:15)だったので,6:45頃に競技場に入りました.

 元々ネット計測なので,やることは一緒です. 「速い人は前から行くかな」と思っていたので,7:00位から列に並び,スタート後は(危険が無い程度の追い抜きで)前方にあがりました.

 タイム計測の開始直後はかなり速いと感じました. 有名ユーチューバーのご夫婦さんと一緒だったんですが,凄いペースなんです(汗). 時々パワーメータを見ると,5倍出ていました. 下がってマイペースに切り替えるか迷いましたが,良い感じでテンションが上がって来たのでそのまま集団の前方で走りました.

 2合目位から少し落ち着いたのかな...? 一人引きみたいな時間帯が多いものの(あの方も強かった),牽引を交代する選手がポツポツと現れます. 僕も牽引に参加しましたが,申し訳無いことに,あまりペースを上げられなかったです.

 集団の雰囲気は常にポジティブでした. 前述のご夫婦がコースを熟知していらっしゃって、「この先で(勾配が)緩くなるよ」みたいな声掛けをしてくれます. 一体感が生まれましたね. チャンピオンクラスでは無いのでアタック等は無く,協調して皆で良いタイムを出そうという感じでした. 走っていて気持ちが良かったです(^^).

 終始周りに選手がいてあまりサイコンを見ていなかったのですが,ペースが良い事は分かっていました. ゴール前のスプリントで少し離されましたが,大満足の走りです. タイムトライアルをやるつもりが,まさかこんなロードレースのような展開になるとは!!! 一緒に走って下さった方々に感謝です.

2. パワー分析

f:id:changlikesdesktop:20210607194747p:plain:w400
パワー計測結果.

f:id:changlikesdesktop:20210607194843p:plain:w400
レース中の推移.やはり,前半が少しオーバーペースだった様です

 NPが237.7Wというは驚きです. 平均心拍が167というのも過去に無く高い! 余程テンションが上がっていたんですね. というか,普段がダルなんだな...

 ちなみに,この日のTSSが178でした. ヒルクライムレースとは言え,1時間強のライドで150TSSを超えるのはおかしい気がします. 多分,FTP値が適当なのでしょう(汗).

 僕はローラーのFTPテストが嫌いでやった事がありません. ローラーで高強度を出すのが苦手なのと,数値が悪かった時に落ち込むのが嫌だからです. 20分テストとかすれば,250W位出るのかも知れないですね(やらないけど).

3. 今回良かった事

 今回の結果につながったと感じた事をメモします.

チェーンオイル: WAKOS CHAINLUB

 洗車後に直ぐさせるし,浸透も早いし,兎に角使いやすいです. 液体式の高いヤツも試したんですが,戻ってきました. おそらく、液体式は性能を引き出すのに(チェーンの乾燥などの)技術が要るのでしょう.

 注油した後の慣らしの重要性にも気づきました. これまで,レース前日に洗車と注油をしてそのままレースを走っていたのですが,今回はたまたま1週間前の練習中に雨に降られたタイミングで洗車しました. 平日のローラーはリム車なので,注油後一週間放置したことになります. 前日には,50km程の調整ライドに出ました.

 一週間の放置が良かったのか,前日の走りが慣らしになったのかは判りませんが,当日は今までに無くパイクを軽く感じました.

タイヤ: Panaracer GILLAR

 ヒルクライム用の決戦タイヤとして,今回導入しました. 25Cで170g程度なので,確かに軽量です. グリップに対する不安は多少ありますが、登りだけでは全く問題ありませんでした.

 ちなみに,今回のバイク重量は7.25kg(サイコン無し)でした.

アップ

 面倒くさくてローラを持って行かないことが多いのですが,,,重要さを実感しました. 15分弱程度のアップしか出来ませんでしたが,目標値のパワーを何度か出しておくと,身体の反応が良くなる気がします. ちなみに,僕は心拍の反応が鈍いので,サイコンはほぼパワー値だけを見ます.

 だたこれ,今回の苦労ポイントでもありました. 前日,MINOURAのハイブリッドにディスク車が乗らないことに気付きます. 止む無く,アップ用にリム車を持っていくことに... この所為で,当日の詰め込みが15分増しでした. 三本ローラーを買うかな…

f:id:changlikesdesktop:20210607200904p:plain:w400
ローラー用に2台目を積むことに(泣)

フリースタート形式

 コロナ渦の応急処置ではありますが,良い点も多いと感じました。 お手洗い前の行列はヒルクライムの風物詩みたいなものですが,それが解消されます. 会場入りする時間もバラバラになるので,交通渋滞も減りますよね. チャンピオンクラス以外はこれで良いんじゃないかな?

 問題は,主催者の挨拶とか,ライダースミーティングを一同に行えないことでしょうか. 事前に動画配信するとか工夫すれば,クリアできる気がします.

4. 終わりに

 少し燃え尽きた感がありますね. 乗鞍までは少し時間があります. 減量を一区切りにして,我慢していたビールとお菓子をたしなむつもりです.

 今回70分で走ってみて、改めてゴールドヒィニッシュの難しさを感じました. 間違いなく,5倍が必要ですね. 30代最後の年となる来年が狙い所です. 気持ちが戻ったら,またトレーニングを積みたいと思います.

f:id:changlikesdesktop:20210607201035p:plain:w400
だいぶ相棒っぽくなったかな...

# CloudCompareをViusal Studioでデバッグする

 公式を見ながら*1悪戦苦闘した記録.

0. 環境

1. 必要資源の取得

(1) CloudCompareの最新ソースを取得

$ cd C:\Tools
$ mkdir CloudCompare
$ cd CloudCompare
$ git clone --recursive https://github.com/cloudcompare/CloudCompare.git

Note:

  • C:\Tools下にソースを取得
  • Git bashを使ったが,コマンドプロンプトでも何でも良い
  • インストール時のver. は下記
    f:id:changlikesdesktop:20210507040415p:plain:w200
    ビルド時のver.

(2) CMake-guiをダウンロード*2

f:id:changlikesdesktop:20210507040941p:plain:w600
cmakeのZIP版を取得

Note:

  • インストーラでも良いと思うが,今回はZIPを取得
  • 解凍して適当な場所に置いておく
  • この後で使う cmake-3.20.2-windows-x86_64\bin\cmake-gui.exe をスタートアップにピン留めすると便利

(3) Qtをインストール

f:id:changlikesdesktop:20210507041911p:plain:w600
ここ*3からダウンロード

f:id:changlikesdesktop:20210507043520p:plain:w400
custom installationを選択

f:id:changlikesdesktop:20210507043610p:plain:w400
MSVC 2017 64-bitをチェック

f:id:changlikesdesktop:20210507043708p:plain:w400
スゲー時間かかかる

Note:

  • ここ*4で綺麗に説明されていた
  • Qtのアカウント確定メールが迷惑メールに振り分けられて少し迷った

2. Visual Studioのプロジェクトファイルを出力

f:id:changlikesdesktop:20210507051136p:plain:w400
cmake-guiを起動し,ソースの場所とビルド先を指定してConfigure

f:id:changlikesdesktop:20210507054315p:plain:w300
Visual Studio 2017,x64を指定

f:id:changlikesdesktop:20210507051552p:plain:w400
Qt5_DirがNOT FOUNDになる.Qtのインストール先からパスを指定して再度Configure

f:id:changlikesdesktop:20210507052009p:plain:w400
今度はQt5LinquistTools_DirがNOT FOUNDになる.これもパスを指定してConfigure

f:id:changlikesdesktop:20210507052203p:plain:w400
エラーが無くなったのでGenerate

f:id:changlikesdesktop:20210507052438p:plain:w400
先刻指定したBuild先にslnが出来るので,起動する

f:id:changlikesdesktop:20210507075246p:plain
INSTALLをビルド.CloudCompareをスタートアッププロジェクトに設定しておく

f:id:changlikesdesktop:20210507075345p:plain:w400
C:\Program Files下にCloudCompareProjectsができる.CloudCompare_debug内のdllとフォルダをbuild\qCC\Debugにコピー

f:id:changlikesdesktop:20210507080015p:plain:w400
デバッガを起動

Note:

  • 書き込み権限の問題でCloudCopmareProjectsが出来ない場合は,Visual Studioを管理者権限で実行する
  • Linuxでも同様の事が出来ると思うが,gdb単体でデバッグするのはツラい...統合環境とかみ合うか,今度やってみる

追記(2021/5/11)

 Program Filesから持ってきたdllでは,dllの中身をデバッグできない.dllの中に入りたいときは,lib内の個別プロジェクトにできるdllとシンボルを実行フォルダにコピーする.例えば:

f:id:changlikesdesktop:20210511051256p:plain:w400
dll内のデバッグにはシンボルが必要.pdbだけコピーすると何故か駄目で,dllも一緒にコピーした

富士チャレンジカップ ソロ100 km: 57位

 こんにちは.changです.

 富士チャレンジカップ ソロ100kmに出場しました. ゴールドフィニッシュを目標に走りましたが,結果は2時間23分で57位. 力を出し切りましたが,(上位5%ルールにより)目標には届きませんでした.

f:id:changlikesdesktop:20210426191144p:plain:w400
晴天の富士スピードウェイ

0. 午前午後の2部構成

 COVID 19への配慮からか,今年は午前・午後の2部開催になりました. スタートリストを見ると,僕が出場した午前の部のエントリーは470名でした. 例年1000名程が出走することを考えると確かに少ないですが,感覚的には,ゆっくり勢が減っただけでレースレベルは変わらなかったと思います. 上位5%に入る難易度は,前回大会よりも高かったかも知れないですね.

1. レース展開

 静かに,ずーーーっと速いレースでした.

 前々回は豪雨で,周回毎の落車発生の挙句,途中ストップでした. 前回は周回スプリントにボーナスタイムが付いた関係か,所々でレースが荒れました. それに比べると,今年は淡々としていました. アタックも殆ど無く,黙々とペースを刻む感じでした. 複雑な状況下でのレース開催でしたし,皆さん慎重に走られたのかも知れません.

 展開の中で,自身のレベルアップを感じていました. 勿論,楽に付いていけた訳はありません. それでも,ホームストレートをこなしながら集団の前に上がる余裕がありましたし,補給もしっかり取れていました.

 トラブルと言えば,ボトルを落とした事ですね. 軽量化しようと中身を捨てていた時に手を滑らせました. 後方のライダーさんの落車を引き起こすかと一瞬不安になりましたが,大丈夫だったようです.

 14周回か15週回目に一度千切れます. 登りの前で少し下がってしまって,中切れに遭ったと記憶しています. ホームストレートで離された時には,レースが終わったと思いました. 幸い,同じ境遇の方達のトレインに乗って集団復帰できました. ただ,脚はかなり使ってしまいました.

 終盤のペースアップを警戒してましたが,思った程にはペースが上がりませんでした. サイコンの結果を見ると17周回目から若干上がった様ですが,明らかなペースアップがあったのはラスト一周だけでした. それも,(感覚的には)最後の登りだけをワッと踏んだ感じでした. ダンロップコーナーの前で集団の前方に上がったまでは良かったのですが,ゴールに向けて食らいつくだけの脚がありませんでした. 最終的に,トップから30秒遅れでのフィニッシュになりました.

2. パフォーマンス分析

 前回とパフォーマンス比較をしてみました.

f:id:changlikesdesktop:20210426192439p:plain:w400
前回(2年前)のパワー分析

f:id:changlikesdesktop:20210426192536p:plain:w400
今回のパワー分析

 正直,我ながら強くなったと思います. 単純にFTPが20 W程上がっているので,それがそのまま結果に現れた形です. ただ,平均ケーデンス83,最大心拍170というのはパワーに頼り過ぎですね. 余裕のある局面では脚を回して,最終盤にパワーを残すような工夫が必要かと思いました.

Note

 パワーメータが変わっているので,純粋比較では無いです. 感覚的には,新車につけているパワメの方が5W増しです.

f:id:changlikesdesktop:20210426195537p:plain:w400
前回の中盤ラップタイム.タレまくっとる...

f:id:changlikesdesktop:20210426195617p:plain:w400
今回の中盤ラップタイム.画像が切れてますが,最終ラップはNP 203Wでした.終盤に脚を残せてましたね

 中盤のラップをみても,タレ無くなったよね...

 トレーニングの成果を発揮しても目標に届かなかったのは,正直,残念です. 練習しているのは,自分だけでは無いという事ですね. いつもチャンネルを見ている有名ユーチューバーさんと何度か並走しましたが,メチャクチャ強くなっていました. 勝手な親心で嬉しくなりました(^^). 富士ヒルでは負けませんよ!

 課題は,やはり短時間高出力ですね. 脚に余裕があるつもりなのに,最終スプリントに残れないのが致命的です. ただ,僕が10倍を出しても精々500Wの前半なので,ゴールスプリントでは間違いなく勝てません. 自身が目指す競技イメージを固めていくことも必要だと思います.

3. 新機材

 新機材*1で初めてレースを走りました. 速さはお金で買えないと思ってますが,効果はかなりあったと思います.

 間違いなく良くなったのが下りです. 前回は第一コーナーからの下りで毎回苦しみました. 今年はそれが無いどころか,エアロポジションを取って脚を休めることが出来ました. エアロダイナミクスの賜物でしょう.

 脚残りも良かったと思います. 前回の富士チャレで両足攣りにあったり*2,川崎マリンで腰痛になったりした*3のに比べると,身体の痛みは殆ど無かったです. その所為で,集団内の位置取りに集中できた気がします.

 このバイクでレースを走るのが楽しみで仕方がありません. 不甲斐ない僕ですが,末永く宜しくお願いします!

4. おわりに

 目標には届きませんでしたが,自身の最高のパフォーマンスを出せたことには満足しています. ただ,やっとレースを出来るレベルに来たに過ぎません. 勝利に絡むには,更にもう数ランクのレベルアップが必要と感じます. その為に何をすべきか,また考えて行きたいと思います.

 富士チャレは,2.5年前に僕が初めて出場したレースです. チームに入ったばかりで右も左も分からない中,チームメートに励まされながら走りました. 流行り病で世の中が大変な状況の中,皆でワイワイとレースに行く感じではなくなってしまったことが少し寂しいです. ただ,”レース”という事で言えば,例え流行病が無くても,いつまでも続けられるものでは無いですよね. レースを走れる喜びを噛みしめながら,一戦一戦を走ろうと思います. 同時に,自転車の楽しみ方の幅を広げて,チームメートと共に自転車ライフを楽しんでいきたいです.

 GW中に下総に行こうと思ってましたが,マンボウも出るので自粛することにしました. 富士ヒルクライムが開催されることを願います.

npmが入らない(泣).やはりPythonアプリ厳しい? という話

 こんにちは.changです.

 ふとした事情から,以前に試したReNomを再度使おうとしたところ,セットアップできずに断念しました. この記事の目的はReNomを動かすことではありません. Pythonをベースとした(主にディープラーニング関連の)アプリケーション開発のリスクについて,再考することです.

0. ReNom再セットアップ

 以前のメモ*1に沿ってインストールしようとしました. つまずいたのは↓です.

$ sudo apt install -y nodejs npm

 npmのインストールが失敗するようなので調べてみると,同様のトラブルを経験している方がいらっしゃいました*2

 nodeをソースから入れろということみたいなので試してみます.

  • 古いver.をとりあえず消す
$ sudo apt-get remove nodejs
$ sudo apt-get remove npm
  • ソースを取得してインストール
$ sudo apt-get install curl
$ curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
$ sudo apt-get install -y nodejs

ver.確認

$ node -v
v8.10.0

 この後で再度npmを入れようとしましたが,同じエラーになりました. 以前にセットアップしたときはnodeがv10.15.3だったので,ver.が不整合なのかも知れません. v10を入れるための方法をまとめてくれた方がいらっしゃった*3ので試しましたが,僕の環境ではv8しか入りませんでした.

 で,結局入らないのでReNomの公式サイトを見たところ,以前には無かったpipのインストーラが公開されていました.

  • ReNomTAGを入れる
$ pip3 install https://grid-devs.gitlab.io/ReNomTAG/bin/renom_tag-1.4b1-py3-none-any.whl
  • 起動成功
$ python3 -m renom_tag
Bottle v0.12.13 server starting up (using WSGIRefServer())...
Listening on http://0.0.0.0:8080/
Hit Ctrl-C to quit.

 同様にReNomIMGもpipで入れてみましたが,こちらは起動エラーになりました.

$ pip3 install https://grid-devs.gitlab.io/ReNomIMG/bin/renom_img-2.4b5-cp36-cp36m-linux_x86_64.whl
$ python3 -m renom_img
Traceback (most recent call last):
File "/usr/lib/python3.6/runpy.py", line 193, in _run_module_as_main
  "__main__", mod_spec)
File "/usr/lib/python3.6/runpy.py", line 85, in _run_code
  exec(code, run_globals)
...(省略)...
  from pandas.core.dtypes.cast import (
ImportError: cannot import name 'maybe_downcast_numeric'

 ここで断念しました. ちなみに,以前はgithubからソースを取得してインストールしたのですが,現在はソースが非公開になった様です.

1. Pythonアプリについて

 以前に,ユーザに納品するソフトのバックグラウンドにPythonを使用するのは危険という話をしました*4. 今回の経験は,Pythonを含んだ,Web経由でインストールするオープンソース資源を使うことのリスクという事になります.

 前回にReNomをセットアップしたのが,丁度2年前です. 開発者の感覚からすると,2年前の資源が使えないのは当たり前です. むしろ,2年間も環境が更新されていないのならば,開発の進捗が心配になります. でも,ユーザにはそう言えないです. 納品時のHDのミラーを残す等で緊急対応は出来るでしょうが,,,システムファイルとデータファイルを上手くわけられればね.

 今回の経験からは少し飛躍しますが,やはり,Pythonベースのディープラーニング環境をユーザのパソコンに入れるのは難しいと思いました. やるなら,自社のクラウド上に構築&メンテナンスした環境を,ユーザーにログインして使ってもらうのでしょう. ただ,最新環境を維持しようとすると,少なからず,ユーザ側のオペレーションも変わるハズです. その辺の理解を得ることが必要かと思います.

2. むすび

 また愚痴っぽい話になりました. 別にReNomを批判するつもりはありません. 環境の再構築は別の機会に試してみるつもりです.