奈良マラソン2022

奈良マラソン、走ってきました。

2018年に1度走っていて、出走は2回目になります。

 

以下レポート。

↓↓↓

※レースは5㎞ごとにまとめています、ラップは5㎞ごとは公式、1㎞ごとはGarminから(誤差があります)
★0-5km : 25:21(5:13-4:56-4:56-4:52-5:05)
 ・奈良のラン友、MさんとEブロックからスタート、落ち着いていく、二人でいくのは心強い
 ・1㎞すぎ、高天交差点で、応援に回ってくれているTさん、Kさん発見!元気を頂く
 ・4㎞ぐらいでDブロックスタートの京都のIさんが後ろからくる?なぜ?どうやらトイレだったようです、その後並走となる
 ・大宮通りに入ってからキロ4分台ラップ(Garmin)連発でオーバーペースの不安がよぎるも心拍数は140台ギリギリキープ、最後地獄は見るだろうけど何とかいけると判断
★5-10km : 25:27(5:02-5:00-4:56-5:17-5:09)
 ・折り返しからはスライド区間!楽しいです
 ・かつてのブログ仲間、まゆちさんというツワモノ女子ランナー(サンタコスプレ)にも声かけられました
 ・Mさんも奥さんとハイタッチしているところ拝見しました、いいですね
 ・8㎞から登り、途中、Tさん、Kさんが待っていてくれた!嬉しい
  まだ元気だったので、余裕を見せられたと思います
 ・キロ5で8㎞程度は余裕になれたかぁとちょっと感動
★10-15km : 25:46(5:01-5:03-5:23-4:55-5:05)
 ・10㎞通過で50分台前半?結構早い
 ・アップダウンを経て、ちょっとオーバーペース気味なので私は後ろに下がる
 ・Iさん先頭、Mさんが続いて私が少し後ろ
 ・12.5㎞で痛恨のトイレ…小でしたが30秒ほどロスったか!?仕方ない
 ・ワッケンローの場所は本当楽しい!下り基調でスピード出しすぎ注意
★15-20km : 26:16(5:07-5:40-5:11-5:14-4:55)
 ・15.5㎞ぐらいの窪之庄南交差点(セブンイレブン)で左折時、Mさん発見、差は200mほどか
 ・登り基調になるので、少し温存していた体力を徐々に解放していく
 ・楽に登れるフォームは強く意識、着地時膝を伸ばして前傾姿勢、自転車立ち漕ぎイメージ
 ・16.4㎞柿もなかは絶品!ただ口の水分が持っていかれる(笑)
 ・坂を上り切って少しした19㎞ぐらいでMさんに追いつく
 ・20㎞前後で、まさかのMさんトイレ離脱!無念!
★20-25km : 24:32(4:43-4:47-4:52-4:56-4:54)
 ・天理への下り基調、無理ない程度にスピードを上げるも、左ひざが痛い、やばい
 ・一時辞めようかと思ったけど、ジェルを飲むと痛みが和らいだのでそのまま粘る
 ・下り切った後の天理の町は、気分良く快走、応援にこたえまくってました
 ・24㎞すぎにとうとうIさんを発見、サブ4はほぼ確実と少しお話してから先にいかせていただく
★25-30km : 27:02(4:59-5:24-4:55-5:43-5:42)
 ・天理教協会本部の門へ南下する200mほどの登りが地味にきつい、この時点で足はかなり消耗していると思われる
 ・天理からの折り返し後は登り基調、スライドで誤魔化しながらペースを作る
 ・まゆちさん、ぴろさんは発見、ぴろさん余裕かなりありそうに見えました
 ・28㎞手前で、Tさん、Kさんが大声で応援してくれる!!!嬉しい
 ・有森さんも28㎞地点にいて、声が枯れていた
 ・急な登り開始後足が終わりかけなので温存していく、29㎞エイドからエイドは歩くと決める(笑)
 ・登り切った30㎞手前、こばちゃんとスライド!オーラ出てました、かっこええ~
 ・30㎞で2時間34分、目標3時間45分までキロ6だとギリギリ間に合わないので、残り頑張る覚悟を決める…。
★30-35km : 26:31(5:20-5:39-4:46-5:39-4:54)
 ・この先ラップでちょっとかかっているのは、エイドで少し歩いている影響です
 ・32㎞過ぎ下りきってのエイドで、柿の葉寿司ゲット!おいしいですね
 ・残り10㎞で2時間45分ちょい、まだキロ6では間に合わないか…
  覚悟を決めて5'30"/kmでいって3時間40分切りに切り替える
 ・33㎞ぐらいからの少しの上りも足にきます…結構追い込まれている
 ・それでも35㎞手前でYさんが待っていてくれた!嬉しい、もうきつすぎるとか、ダメだとか、弱音を吐いてしまうも、元気をもらう
★35-40km : 26:40(5:31-5:22-5:17-5:19-4:59)
 ・36㎞過ぎ、名物デイリーヤマザキの坂は視覚的に明らかにキツイ、足攣らないように慎重に…
 ・残り5㎞では3時間13分台ぐらいだったような気がする、いけるいける
 ・37.7㎞で歩いて給水していると、大声が聞こえる!?TさんとKさんだ!もう移動している、すごい
  きつすぎると弱音を吐きつつ、すごい元気をもらいました
  45分切りはこの時点で確信、45分は切りますと宣言して再スタート、この時点で40分切りは微妙なライン
 ・39㎞すぎ、東大寺角を曲がった下り坂で、ヤマケンさんご家族もいてくれた!!!嬉しすぎる
  ここまで微妙に温存していた足を、残り2.195㎞に吐き出す覚悟を決める
★40-42.195km : 11:11(5:04-5:21-2:39[4:32/km])
 ・焼門前の角を曲がったストレート1㎞弱、4年前はここで歩きました
 ・今回はフォームを強く意識してスピードを落ちないようにいく、絶対歩かない
 ・最後のラスボス上り坂は歩きかけるも、前の人が粘るので付いていき、追い越す!いける!
 ・上り坂、呼吸は周りの誰より乱れていたと思う、最後に呼吸が追い込めるのは幸せなこと
 ・車道から競技場へ入ってからはフラット、4:30/kmぐらい目指して最後追いこむ
 ・吐きそうになりつつ、42㎞地点競技場入った時の時計は38分ちょうどぐらい、40分切りできそうとこの時点でわかる
 ・最後まで粘って38分台フィニッシュ、なんとか40分切れて信じられない気持ちでした
 ・公式記録でもラスト2.195㎞は5:05/km、かなり頑張ったと思う

 

 


★フィニッシュ後
 ・Mさんはそんなに離れていないはずなので待つとすぐ帰ってきてくれた
 ・自己ベスト更新とお聞きして本当嬉しかったです
 ・タオルは素敵なデザイン、奈良はクオリティ高い
 ・その後応援してくれたTさん、Kさん、そして、ひろみさん、ぴろさんとも合流してお話できました
 ・恥ずかしながら、左ひざは少しダメージが残りそう、頑張りすぎたな~1週間ぐらいはゆっくりする予定
★ダニエルズ理論との比較
 ・直前走力では、5㎞22:11(10km、ハーフは不明)だったので、VDOT44程度、同走力ならフル3時間32分
 ・奈良の坂道を考えると、平坦ならそれぐらいのタイムだったかと思われる、力は出せたと言えるはず
 ・やはり私はスタミナ型じゃないかと思う、スピードがないだけとも言えるか…

★過去との比較

 ・4年前の2018年(3時間49分48秒)に比べて、ほぼすべてのラップで勝利、ラスト2.195㎞は意地を見せられた
 ・2018年は、奈良→京都(2019)と走っていて、3:49'48"'(2018奈良)→3:38'59"(2019京都)
 ・ということは… 3:38'46"(2022奈良)→3:??'??"(2023京都) 自己ベスト出したいです、今のベストは3時間31分54秒(2019長野)、3.5いけるかな

 

 

★今後の予定

 ・2023/01/29 館山若潮ラソン(フル) 視覚障害者の伴走 5時間ぐらい予定

 ・2023/02/19 京都マラソン(フル) 一応ガチ予定

 ・2023/05/21 野辺山ウルトラ(100km) 完走目標

 

富山マラソン2022



数年ぶりの投稿…

 

富山マラソン2022を走ってきました。

半年ほど全然走れない期間を経ているので、昔の走力に近づくのを目標に練習してきました。以下箇条書きでのレポートです。

 

↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

 

★前日
  ・前日受付では、俳優「松本岳」さんのトークショーを楽しむ
  富山出身、戦隊モノに出ているイケメン
  富山マラソン2022が初フルですって
 ・コロナは、3回目ワクチン証明写真で通過
 ・ジェルを2個購入→これが命を救うことになる
 ・富山駅周辺宿へ宿泊、予約もなかなか取れず不便でした
 ・今回のプランは3時間40分切り狙い撃ち、2年前の走力に戻っていてほしい

f:id:tubarin:20221110080218j:image
f:id:tubarin:20221110080236j:image
f:id:tubarin:20221110080258j:image
f:id:tubarin:20221110080318j:image
★当日出走まで
 ・気温6℃で寒い
 ・富山駅高岡駅へ電車移動、激混み
 ・高岡駅→会場へは2㎞近く歩く、コース下見が出来てよかった
 ・トイレや手荷物預けは問題なし
 ・スタートブロック(F)への動線が悪すぎて激混み
 ・締め切り後にブロックへ入ってくる人多数、こんなもんですかね
 ・思い切って、半そでTシャツ+短パンの超薄着で勝負

f:id:tubarin:20221110080419j:image
f:id:tubarin:20221110080439j:image
f:id:tubarin:20221110080455j:image


※レースは5㎞ごとにまとめています、ラップは5㎞ごとは公式、1㎞ごとはGarminから(誤差があります)
★0-5km : 25:52(5:29-5:11-5:02-4:58-4:54)
 ・Fブロックで通過まで1:39
 ・最初1㎞は密集が激しい、慎重に進む
 ・高岡市内でGPS距離が伸びている、最初に誤差が載っていた様子
 ・心拍数がバグって160bpm後半とあり得ないので、体感でレースペースを意識
  →低温は精度が落ちることがある
 ・久しぶりの「走りながらの給水」が絶望的にうまくいかない
★5-10km : 25:10(4:54-4:59-5:03-5:03-5:03)
 ・キロ5ぐらいで走っていても順位を落とす区間
 ・周りが明らかに速いので、正常になった心拍計で150bpm以下縛りで走る
 ・5:12/kmのプランだったが、この辺りで5:00-5:05程度で行けると判断
 ・陸橋越えの坂があるので、特に登りは抑えめに
 ・スライド区間があったのでモモさんを探したけど人が多すぎて分からない、無念
★10-15km : 24:59(4:57-5:04-4:58-4:53-5:01)
 ・庄川沿いに海へ下るコースなので、キロ5を目安に少しペースアップ
 ・日差しが後ろからあたり暑さを感じる
 ・帽子のツバを後ろにかぶって、暑さ対策実施、水も首にかける
 ・基本的には誰かの後ろについて、できるだけ頭を休める
 ・それでも海に出るちょっと前は少し暑くて最後まで持たないかもと弱気になる
 ・しかし、左足付け根の痛みはゼロ、いけるところまではいきたい
★15-20km : 25:17(4:53-4:59-4:54-5:10-5:03)
 ・海沿いのコースになって日差しが前からになったので帽子を普通に被りなおす
 ・風が吹いて涼しさを感じられて楽になる
 ・新湊大橋が見えてきてテンションあがる
 ・18.6㎞エイドでは、マス寿司ではなく天むすを選択
  エビのしっぽがノドに詰まってダメージを食らう、食べるのが絶望的に下手
★20-25km : 25:29(5:23-4:57-4:52-5:11-4:58)
 ・新湊大橋、登りは5:20/km前後ぐらい、下りは抑えて4:50/km
 ・ハーフ通過が1時間47分程度、目標に対して3分貯金はいい感じ
 ・足の裏側に筋肉を損傷したような痛みがあるので、そこそこ足を使ってやばい感じ
 ・橋を降りてからの平地は、メディカル女子ランナーにピッタリつける
★25-30km : 26:03(5:07-5:00-5:05-5:28-5:13)
 ・29㎞はエイドで立ち止まって給水をしているはず
 ・ペースが落ちそうになるも、メディカル女子ランナーについていって粘る
  結局キロ5ちょっとでずっと刻む、安定感が凄すぎる、ドクターすごいって
 ・心拍数は150bpm前後も、29㎞あたりで心筋の疲労、肩の痛みが出てきてピンチ
 ・前日買ったゼリーを飲むと痛みがなくなる、カフェインパワー凄い
★30-35km : 25:38(5:01-5:04-5:06-5:12-5:07)
 ・日差しの強さとともに、明らかにペースダウン&止まっている人が増える
 ・5-15kmまでに付いていくのを諦めたランナーを抜き返す場面が増える
 ・ペースはメディカル女子ランナー任せも、30㎞から明らかにペースアップ、まぢか
  少し上り坂なので鬼であるが35kまでは根性で付いていく
 ・もう心拍数は無視して、残りの距離をキロ6でも3時間40分切れるところまでを目標にする
 ・34㎞の給水はコーラで蘇るも噴き出してベタベタ、ホント飲むのが絶望的に下手
★35-40㎞ : 26:03(5:06-5:08-5:33-5:00-5:07)
 ・36㎞から上り、メディカル女子ランナーは更にペースアップしていった、一人旅へ
 ・37㎞北代への上りきったエイドで20秒ほど止まって給水&ジェルを飲み切って気合入れ
 ・残り5㎞から少し下り坂があったので、辛うじてペースキープ
 ・呼吸がきつくなってきたが、周りは殆ど足が止まっていてハァハァしていない状況、粘れる条件は整っている
 ・39㎞あたりで、残りキロ6でも3時間40分切りを確信、40㎞から勝負に出ることにする
★40-42.195km : 10:44(4:54-4:51-2:24[4:43/km](500m))
 ・神通川を越える橋が意外に上り坂になっているも、気にせずロングスパート
 ・フルの最終盤で無酸素入るかギリギリの領域で走れることに感謝、足はギリギリ残っている
 ・心拍数160bpm越えで息切れして、途中少しだけ止まったりする、まだまだだな~
 ・それでもラスト2.195㎞は4:53/km、ここまでそれなりのペースで走ってきてよく上げられたと思いたい

f:id:tubarin:20221110081853j:image
f:id:tubarin:20221110081903j:image
f:id:tubarin:20221110082010j:image
f:id:tubarin:20221110082138j:image
f:id:tubarin:20221110082123j:image
f:id:tubarin:20221110082044j:image

★フィニッシュ後
 ・しばらく立てないほど追い込まれる、最後やりすぎた
  もうちょっと余裕もって走ればよいのに本番雰囲気にやられたかな
 ・3分後ぐらいに、ランスマ倶楽部の井上咲良がフィニッシュしてびっくり!
 ・左足付け根や内臓はかなり元気でびっくりも、足は完全売り切れて階段降りれない状態、100㎞走ったときより酷い
 ・LTペース走や峠走はやってきたけど、仕上げの速いペース走をやっていないので足がまだまだ仕上がっていない様子
★総括
 ・頑張りすぎたけど、終わってみればセカンドベスト、よかった
 ・前半ハーフ1時間47分、後半ハーフ1時間48分とほぼイーブンペース
 ・今の力を出し切った結果で大満足
 ・逆に言うと、大きな失敗無しが今のタイム、サブ3.5するには、かなり走力そのもののアップが必要(or体重2㎏減らす) 吐きそう
 

久しぶりのスピード練習。

最近、色々と忙しく走っている場合ではない状況の陥ってしまいました・・・。

 

が、太って来てヤバイので、今日は久しぶりに1時間ほどジョグって来る予定で近所の山道を走ってくる。

思いのほか暖かく、いや、暑く、季節の移り変わりを感じますが、坂道自体は勾配10%には及ばないほどで思いのほか楽しく登れて一安心。

本当に短い距離のジョグは坂でしていたので、少しはキープされていたかな?

 

結局走った距離は7.5kmほどとちょっと中途半端かもしれないけど、今の私には十分かな~?

累積標高差は、±220mほど。

f:id:tubarin:20200430211809j:plain

 

久しぶりにカシミールで高低差を出してみる。

43分ぐらいだったので、トータルで、5'49"/km、まぁまぁでしょうかね~。

 

1kmごとのラップも、最初ちょっと失敗したけど、取ってきました。

 

 - 1km : 5'36"
 - 2km : 5'36"
 - 3km : 5'34"
 - 4km : 5'56"
 - 5km : 7'08"
 - 6km : 6'50"
 - 7km : 5'05"
 - 7.52km : 1:52"[3'35" /km]

 

実はこんな対したこと無いジョグなのに、記事にしたのはラスト520mにありました。

勾配8%ほどの下り坂、冬場にはワンコと一緒にスピード練習していた区間になります。

1本だけですが、走った勢いそのままに、貯めた力をラストに出してみました。

キロ4ぐらい出るかな~?と思ったら、3'35"/km!!!

たった2分で足がいきなり終わった感じですが、呼吸も何とか持ちました、よかった。

冬場のベストは、ジャストキロ3(3'00"/km)なので、それに比べると遥かに遅いですが、今ならキロ4切れれば十分だろう~安心しました。

 

これからどれだけ走る時間を取れるか???

怪しいですが、これ以上太らないためにも、特にゆっくりジョグをしていきたいです~。

山奥に住んでいるメリットを活かして!

※人に会わないのでコロナ対策ばっちり!坂道ばかりだけど~(笑)

スキーの難しさの正体は???

ブログを作ったのはいいけど、マジでロクに書いていないなぁ~。

実は私生活でとても忙しくなってしまい、趣味どころじゃないというのが本当のところでした。

ラソン大会が中止になって助かっているのが本音です。

 

というわけで、ちょっとスキーネタでも書いておこうと思います。

 

以前のブログでも少しだけ書いたことがありますが

「スキーの難しさの正体は???」

というテーマで書いてみます。

 

結論から・・・

「腰の位置が両足の間ではなく、その外側にある状態をキープすること」

ではないかと考えています。

まるで特許の文章のような、意味不明な感じですね~(笑)

 

ステップを追って説明したいと思います。

 

1.スキーは一体何がしたいのか?

 ↓

2.そのための身体の動かし方は?

 ↓

3.それはなぜ難しいのか?

 

こんな感じで、ゆる~く書いてみます。

 

 

1.スキーは一体何がしたいのか?

これはもう、ズバリ、「ターン」がしたい、つまり曲がりたいってことですね。

スキーをやらない人からすると、

『ただひたすら斜面を降りてきて何が楽しいのか?』

という疑問が湧くのも当然なのですが、実はただ降りるだけではあまり面白くなりません。

スピードが怖いので、絶叫マシーンのような面白さはあるかもしれませんが・・・。

スキーの醍醐味は、曲がることなんですね。

それによって、遠心力が得られて、この”遠心力”が快感を生むんだと思っています。

つまり、快感を得るために、遠心力を自在に感じたい、そのためにターンをする。

これが(少なくとも私が)スキーをする目的となっています。

 

 

2.そのための身体の動かし方は?

さて、スキーでターンをする、つまり、曲がるためにはどうすりゃいいでしょうか?

私がスキーを始めたばかりのときは、ここを大きな勘違いしていました。

止まったまま、方向を変えるような動き・・・

例えるなら、立体駐車場に車を置いたときに、止まったままグルグル回るようなイメージでしょうか。

↓(こんな感じ)

f:id:tubarin:20200413215243j:plain

 

こんな考え方でも、圧雪ならある程度滑れちゃうのですが、自然の悪雪(クラストやアイスバーンなど)は通用しません。

なんせ、一番の目的である”快感”が得られないんです・・・もったいない。

 

そんなわけで、どうすりゃいいのか?

ここで出てくるのが、この記事の結論、「腰の位置を両足の外側に持ってくる」ということです。

少し絵を用いて説明しましょう。

 

日常生活を送る上で、我々は腰の位置を両足の間に置いています。

めちゃくちゃ適当なイラストですが、以下のような感じです。

f:id:tubarin:20200413215628j:plain

緑の▽が腰、水色の上下に細長い四角形が両足です。

両足の間に腰があります。自然ですね。

 

ここから腰を少しずつ横へスライドさせてみます。

f:id:tubarin:20200413215755j:plain

これぐらいなら、まだまだ余裕ですね、

体重は、正面から見て→(右側)の方に掛けた方がやりやすいかもしれません。

 

更にスライドさせていきます。

f:id:tubarin:20200413215849j:plain

腰の中心が、正面から見て→(右側)の足の上に来ました。

かなりスライドさせています。

→(右側)の足で一本足で立つとこんな感じになれるかもしれません。

 

スキーで曲がるときは、なんとこれを超えます。

↓こんなかんじです

f:id:tubarin:20200413220044j:plain

 

絵で見ると、なんだか不健康な感じがします。

ある程度のスピードで滑走している状態で、上の姿勢をとる事によって、自然と正面から見て→(右側)へ曲がり始めます。

これこそが、ターンをするための身体の動かし方、ではないかと確信しています。

かなり基本的なことながら、私がこれを直接教わることは一度もありませんでした。

 

 

なお、上記はスキーの中でも、パラレルターンと呼ばれる技術のことを示しています。

ボーゲン(プルークボーゲン)では、腰の位置は両足の間にキープしたまま、全ての動作をするため、難易度は劇的に簡単になります。

 

 

3.それはなぜ難しいのか?

さて、腰の位置を適切なところに持ってくることでターンが出来ることが分かりました(ということにさせてください)。

なぜこれが難しいのか?

これは、いくつか理由があると思います。

 

■非日常的だから

まず普通に暮らしていて、腰の位置が両足を超えてその外側に行くことはありません。

やったことがないんだから、そりゃいきなりやるのは難しいです。

 

■スピードを出した状態で、この姿勢をある程度の時間キープするから

やってみるとわかりますが、この姿勢はかなり不安定です。

スライド量によっては、体幹も要求されるかと思います。

止まっている状態でも難しいのに、これをある程度スピードを出した状態でやらなければいけません。

最初これはかなり怖いはず。難しいのも無理はありません。

 

上記2つだけでも十分難しいです。

更に、この姿勢を腰の角度を水平にしたままやることが求められます。

これはかなりの上級テクニックに属すると思います。

 

f:id:tubarin:20200413220044j:plain

 

 

■腰の角度を水平に保つのが難しい(上級編)

やってみると分かりますが、頑張って腰の位置をスライドしていくと・・・

f:id:tubarin:20200413222104j:plain

こんな感じで、腰が横に傾く(外側へ倒れるような感じ)になることが多いと思います。

これは、恐らく関節の構造上の問題か、筋肉の付き方の問題じゃないかな?と考えています、

腰を水平にしようとしたとき、私の場合は坐骨近辺がストレッチされるような感触があるようです。

この感触・・・例えば、横座りをすると分かります。

 

f:id:tubarin:20200413222839j:plain

こんな感じで座ると、足側(この絵だと、←側)の坐骨、お尻が浮いているかと思います。

極端にやるなら、ここで、左側の坐骨を接地させるようなことをすれば、腰は水平になります。

 

f:id:tubarin:20200413223114j:plain

※お尻の部分だけ、ちょっとした段差を設けるために、椅子に座った状態でやったほうが、より実践的かと思われます

 

出来るでしょうか???

ただ、出来たとしても、多分どこか痛くなるんじゃないでしょうか。

無理しちゃいけませんが、ストレッチ的な感じだとすると、これを繰り返していくことで、体がいい姿勢を覚えられるかもしれません。

そして、これは左右差も良く分かります。

恐らくどちらか得意で、もう一方が苦手だったりするんじゃないでしょうか。

上級者で左右差をもっと無くしたい!という方は、この辺りがヒントになるかも??

 

 

以上のようなことを、スピード出した状態でやらなければいけない・・・

これこそが、スキーの難しさの本質じゃないかと思います。

これを乗り越えた先には、ターンの快感が待っているはずです。

 

自分の画像で恐れ入りますが、大回りではこれぐらい、腰を曲がる方向にスライドさせています。

f:id:tubarin:20200413223252j:plain

 

これはテレマークターン(前後差をつけています)が、多分普通のスキーでも同じじゃないかと考えています。

この本質を抑えることで、「谷回り」「悪雪」「コブ」「アイスバーン」など、様々な場面でのターンの質が格段に上がるんじゃないかな~。

 

なーんてことを考えながら、先週クローズしてしまった八方尾根スキー場のことを思うのであった・・・GWに行こうとしてましたが無念!!!

TensorFlowを動かしてみた

Google先生が出している機械学習ライブラリ、TensorFlowを動かしてみました。

Pythonで触れるとのこと。

インストールはAnacondaからpipコマンドで入れてみます。

以下のサイトなどを参考にしてみます。

 

qiita.com

最初は上手く動かなかったのですが、TensorFlowのVersionをちょっと古いのに指定すると何とか動いてくれました。

 

というわけで、早速チュートリアル???のコードを動かしてみる。

GetStartでゲットできるコード、簡単な線形回帰分析で試してみます。

以下のサイトを参考にしてみました。

qiita.com

y=0.1x+0.3

のプロット上の点を100点ほどサンプル取得して、0.1とか0.3という方程式のパラメタを推定するという問題。

 

------------------------------

import tensorflow as tf
import numpy as np

# Create 100 phony x, y data points in NumPy, y = x * 0.1 + 0.3
x_data = np.random.rand(100).astype(np.float32)
y_data = x_data * 0.1 + 0.3

# Try to find values for W and b that compute y_data = W * x_data + b
# (We know that W should be 0.1 and b 0.3, but Tensorflow will
# figure that out for us.)
W = tf.Variable(tf.random_uniform([1], -1.0, 1.0))
b = tf.Variable(tf.zeros([1]))
y = W * x_data + b

# Minimize the mean squared errors.
loss = tf.reduce_mean(tf.square(y - y_data))
optimizer = tf.train.GradientDescentOptimizer(0.5)
train = optimizer.minimize(loss)

# Before starting, initialize the variables.  We will 'run' this first.
init = tf.initialize_all_variables()

# Launch the graph.
sess = tf.Session()
sess.run(init)

# Fit the line.
for step in range(201):
    if step % 20 == 0:
        print((step, sess.run(W), sess.run(b)))
    sess.run(train)

# Learns best fit is W: [0.1], b: [0.3]

------------------------------

 

TensorFlowの使い方という意味ではとても良いサンプルなんだろうけど、どうしてもAPIブラックボックス化していてよくわからない。

自分なりに、色々考えて何をやっているかを分析してみました。

どうやら、w,bというパラメタを初期値を適当に決めて、最小二乗のコスト関数に対して最急勾配法を用いて収束演算をしているようです。

ja.wikipedia.org

アルゴリズム自体は大したことは無く、評価関数に対してパラメタの1回偏微分を更新量としてアップデートすればOK。

具体的には・・・サンプルを以下のように定義する。(今回の例ではN=100っぽい)

f:id:tubarin:20200320074923j:plain

このとき、x_nとy_nの関係は以下のようになるように構成しています。

(今回の例では、w=0.1,b=0.3が真値)

f:id:tubarin:20200320074953j:plain

そして、コスト関数はというと、残差の二乗和なので、以下のようになります。

w、bは初期パラメータと考えればOKです。

f:id:tubarin:20200320075103j:plain

もちろん、w,bが正しい値のときには、めでたくL(w,b)=0となるので、Lを最小化するw,bを探せばよいわけですね。

最急勾配法では、初期パラメタの更新を1回偏微分で実施するので、それぞれ求めておきます。

f:id:tubarin:20200320075215j:plain

f:id:tubarin:20200320075533j:plain

これを利用すると、あるパラメタ初期値、w^(k),b^(k)を更新するには以下のようにしていくようです。

f:id:tubarin:20200320075554j:plain

大変申し訳ないのですが、天下り的に、係数αを以下のように決めます。これはTensorFlowのライブラリに渡す係数の特徴から決めています。

f:id:tubarin:20200320075722j:plain

β・・・なんか名前があるんだろうか?ここを収束の設定パラメタとして最初に決めるようです。今回のサンプルだとβ=0.5とします。

 

というわけで、自前のClassを作って検証してみます。

以下の感じでどうでしょうか?

 

--------------------------

class calcWB:
 def __init__(self,x,y,w,b):
  self.x = x
  self.y = y
  self.w = w
  self.b = b
  # get length of sample data
  self.N = len(x)

 def run(self,beta):
  # calculate current redisual
  residual = self.y - (self.w*self.x + self.b)
  # calc dL/dw
  dw = -2*np.dot(residual,self.x)
  # calc dL/db
  db = -2*sum(residual)
  # calc alpha
  alpha = beta/self.N
  # update param(w,b)
  self.w = self.w - alpha*dw
  self.b = self.b - alpha*db
  return self.w,self.b

----------------------

 

初期化用のメソッドと、学習用のrunというメソッドの2つのみ。

これを使って、最初のサンプルを変更すると、以下のようになりそうです。

 

------------------------

# setting param init data
w_init = np.random.rand()-.5
b_init = np.random.rand()-.5

# GradientDescentOptimizer parameter
beta = 0.5

# Create 100 phony x, y data points in NumPy, y = x * 0.1 + 0.3
x_data = np.random.rand(100).astype(np.float32)
y_data = x_data * 0.1 + 0.3


# Try to find values for W and b that compute y_data = W * x_data + b
# (We know that W should be 0.1 and b 0.3, but TensorFlow will
# figure that out for us.)
#W = tf.Variable(tf.random_uniform([1], -10, 10))
W = tf.Variable(w_init)
#b = tf.Variable(tf.zeros([1]))
b = tf.Variable(b_init)
y = W * x_data + b

# Minimize the mean squared errors.
loss = tf.reduce_mean(tf.square(y - y_data))
optimizer = tf.train.GradientDescentOptimizer(beta)
train = optimizer.minimize(loss)

# Before starting, initialize the variables. We will 'run' this first.
init = tf.global_variables_initializer()

# Launch the graph.
sess = tf.Session()
sess.run(init)


# create calcWB object
objCalcWB = calcWB(x_data,y_data,w_init,b_init)

# Fit the line.
for step in range(201):
 sess.run(train)
 w_tmp,b_tmp = objCalcWB.run(beta)

 if step % 20 == 0:
  #print(step, sess.run(W), sess.run(b))
  print('[from TensorFlow] k=%d w=%.10f b=%.10f' % (step, sess.run(W), sess.run(b)))
  print('[from calcWB] k=%d w=%.10f b=%.10f' % (step,w_tmp,b_tmp))

# Learns best fit is W: [0.1], b: [0.3]

------------------

 

実行結果を見てみると・・・

------------------

 [from TensorFlow] k=0 w=0.4332985282 b=0.2284004837
[from calcWB]         k=0 w=0.4332985584 b=0.2284004998
[from TensorFlow] k=20 w=0.1567724198 b=0.2680215836
[from calcWB]        k=20 w=0.1567724287 b=0.2680215712
[from TensorFlow] k=40 w=0.1113634855 b=0.2935992479
[from calcWB]        k=40 w=0.1113634986 b=0.2935992433
[from TensorFlow] k=60 w=0.1022744998 b=0.2987188399
[from calcWB]        k=60 w=0.1022745020 b=0.2987188350
[from TensorFlow] k=80 w=0.1004552618 b=0.2997435629
[from calcWB]        k=80 w=0.1004552578 b=0.2997435619
[from TensorFlow] k=100 w=0.1000911444 b=0.2999486625
[from calcWB]        k=100 w=0.1000911188 b=0.2999486686
[from TensorFlow] k=120 w=0.1000182480 b=0.2999897301
[from calcWB]        k=120 w=0.1000182499 b=0.2999897517
[from TensorFlow] k=140 w=0.1000036523 b=0.2999979556
[from calcWB]        k=140 w=0.1000036551 b=0.2999979575
[from TensorFlow] k=160 w=0.1000007242 b=0.2999995947
[from calcWB]        k=160 w=0.1000007308 b=0.2999995937
[from TensorFlow] k=180 w=0.1000001431 b=0.2999999225
[from calcWB]        k=180 w=0.1000001444 b=0.2999999224
[from TensorFlow] k=200 w=0.1000000909 b=0.2999999523
[from calcWB]        k=200 w=0.1000000255 b=0.2999999832

------------------

 となり、大体小数点以下7桁ぐらいまであっているので、考え方としてはよさそうです。

なるほど、TensorFlowのGradientDescentOptimizerがやっていることを少し理解できた気がします。

 

 

 

と、技術的な内容を書いてしまいましたが、やっぱり普通のブログにこういう記事は無理があるかも???

数式も画像だし、ソースコードを貼り付けるとスペースが消えたりするし。

素直にQiitaへ投稿すべきかもしれませんね。

いずれちょっと転記も検討してみようと思います。

松本市近辺の山岳コース。

ブログ投稿テストとして、先週走ってきたコースの紹介をしていきます~。

 

選んだのは、コロナウイルス対策のため、誰にも会わないような山岳コース。

松本市街地の、松本マラソン出発地、キッセイ文化ホールをスタート&フィニッシュに設定した、以下のコースです。

 

キッセイ文化ホール → 美鈴湖 → 芥子望主山(けしぼうずやま) → キッセイ文化ホール

 

f:id:tubarin:20200318080754j:plain

 

距離は大体21kmぐらいだったようで、ほぼハーフマラソン

ただ、前半5kmは、激坂の登り坂が待っていて、それなりに難易度は高いはず。

特に浅間温泉~美鈴湖は、有名な自転車のレース、「ツール・ド・美ヶ原」の名物激坂になっています。

 

その険しさは、私が言うまでも無く、Google先生に聞くとわんさか出てきます。

utsukushigahara-hc.jp

www.cyclowired.jp

■最大勾配22%

■足つき、押し歩き続出

 

など、恐ろしいキーワードが出てきます・・・。

 

というわけで、序盤の激坂をどこまで温存して登れるかが勝負になります。

ペースは全く気にせずにいってみましょう。

 

まずは、松本マラソン出発地点のキッセイ文化ホールへ。

青空が眩しい。

f:id:tubarin:20200318075558j:plain

 

3年前に出た、第1回松本マラソンでは、人ごみが凄かったのを思い出します。
※あのときは、足攣り地獄で4時間30分切りがやっと・・・(笑)

 

ここから浅間温泉方向へ、ゆるい上り坂を行きます。

1kmもいくと、これから登る激坂が見えてきます・・・あの山行くのか~。

f:id:tubarin:20200318075525j:plain

 

浅間温泉を越えて、この細い道が激坂への入り口。

f:id:tubarin:20200318075505j:plain

 

いきなり勾配10%の坂が始まります。

自転車の立ち漕ぎのように、膝を出来るだけ曲げず、足踏み+骨盤前傾角度調整で足を温存して進みます。

ペースはラップを見ると、キロ8分台ぐらいか?

私としては、十分出ているといえますし、自転車レポを見ても、一般人は時速4~8km/hぐらいのようなので、走っていても似たようなスピードが出ていると思われます。

 

1kmほどのキツいストレートを進むと、冬季閉鎖のゲートが現れる。

f:id:tubarin:20200318075443j:plain

 

勾配もこの辺りが激しく、あるレポートによると、サイクルコンピュータで22%をマークしたとか!?

地面も凍ってきているので、慎重に走っていきます。

 

f:id:tubarin:20200318075427j:plain

 

ストレート区間が終わり、ヘアピンカーブ続出になってくると、勾配は少し落ち着いてきます。

多分10%ちょいってところでしょうか~。

f:id:tubarin:20200318075407j:plain

 

それでも、上を見上げると、2重、3重にこれからいく道のガードレールが見えるという精神的には折れそうな状況です(笑)

出来るだけ温存していきます。

 

もうちょっとで登りが終わるか?という頃、振り返ると素晴らしい景色が待ってました。

f:id:tubarin:20200318075351j:plain

 

雪を被った木々が美しいです、きっとこのタイミングじゃないと会えなかった景色だったと思います。

f:id:tubarin:20200318075334j:plain

 

眼下には、出発地点を含む松本市街地を見下ろせます!

結構登ってきたのが実感できますね。

f:id:tubarin:20200318075256j:plain

 

そして、ようやく登り坂終了、お疲れ様でした~!

激坂区間一部はキロ9分台とスピードを抑えていただけに、足は余裕がありそうです。

f:id:tubarin:20200318075236j:plain

 

ここから美鈴湖は数100m、フラット路面ですが、結構雪がありますね~、

凍ってそうなので、前に進める喜びを噛み締めながらも、ゆっくりといきます。

f:id:tubarin:20200318075217j:plain

 

程なく美鈴湖到着!冬景色の雰囲気です。

f:id:tubarin:20200318075153j:plain

 

f:id:tubarin:20200318075142j:plain

 

湖畔を少し進むと、釣り人が頑張っている様子が見えました。

寒いのに凄いと思う、(私はロングTシャツの薄着だけど・・・)

f:id:tubarin:20200318075121j:plain

 

ここで、ツール・ド・美ヶ原のコースとはお別れして、一度下っていきます。

R254へ合流して、11km地点のセブンイレブン松本洞店でバームクーヘンを頂きます。

こうやって途中で食べるのも、ウルトラの練習と考えています。

 

この先は、後半のピーク、芥子望主山(けしぼうずやま)への登りが待っています。

この先の山だけど、そこまで急には見えないのは、激坂への免疫がついたからでしょうか。

f:id:tubarin:20200318075059j:plain

 

ゆるい上り坂を登っていくと、田溝池という溜池に出ます。

ここも数名釣り人がいましたが、雪が少ないですね!

f:id:tubarin:20200318075046j:plain

 

ここまでは緩い上り坂でしたが、ラスト1kmほどはそれなりにキツくなる。

勾配11%らしい。これぐらいなら野辺山でもあるかな?

f:id:tubarin:20200318075032j:plain

 

それでも長く続くわけではないので、10分ほど我慢して登ればピークに到着です。

f:id:tubarin:20200318075019j:plain

 

ここは公園になっていて、芥子望主山の山頂に登っていけます。

折角なので、歩いて登ってみましょう。

f:id:tubarin:20200318075004j:plain

 

キャンプをしている家族の横を通って、山頂の展望台へ!

f:id:tubarin:20200318074953j:plain

 

上からは雪を被った景色が楽しめました~☆

f:id:tubarin:20200318074940j:plain

 

この展望台からの下り階段が一番滑って怖かった~(笑)

ガチガチ!凍りすぎ。マラソンシューズだと辛い。
f:id:tubarin:20200318083755j:image

 

この時点で16kmぐらいかな?

あとはゆっくり下るだけですが、左ひざの下がちょっと痛むようだったので、ゆっくり下っていきました。

まだまだ足が出来ていないようですが、仕方が無い。

こうやってゆっくり足を作る段階なんだろうな。

 

f:id:tubarin:20200318074919j:plain

 

f:id:tubarin:20200318074838j:plain

 

ラスト1kmはほぼ平坦コースで、気持ちよく走って終了となりました。

 

connect.garmin.com

 

今回の高低差など・・・

※芥子望主山のあたりで、止まっていた時間も含めています

f:id:tubarin:20200318084320j:plain

 

大体、累積標高差で±600mちょいのようでした。

ただ、最初の激坂を考えると、もうちょっと負荷はあったような気がします。

2つの坂があって、1個目の方が高いのは、ある意味野辺山ウルトラのコースを短縮したようなものも言えるかも???

我ながらいいコースを設定できました。

 

 

こんな感じで、足作りに専念していきたいと思います。

結局ウルトラマラソンは足さえ作ればよい気がするので、焦らず焦らず・・・

 

 

PS.そんなことをいっていたら、チャレンジ富士五湖ウルトラマラソンが中止に!!!

野辺山時間内完走をターゲットに引続き頑張ってみたいですが・・・どうなるか?

 

 

 

 

はじめまして~。

Twitterでの投稿だけでは量が足りず、ブログを作って管理してみます。

自分向けのメモなので、読んでて楽しいもんじゃないと思いますが、どうぞよろしくお願いします。

 

ブログのテーマは以下を考えてます。

■ラン(ランニング)

タイムを追うのは疲れてしまうので、ゆっくり楽しく走ることを一番の目的に細々続けています。

多分ウルトラマラソンが一番好きだけど、内臓が弱点。

自己ベストは・・・

 1500m:5'40"ぐらいだったか?

 5km:21分台

 10km:45分台

 ハーフ:1時間38分台

 30km:2時間24分台

 フル:3時間31分台

 100km:13時間30分台

 118km:13時間39分台

 

■スキー

かかとが自由にうごく、「テレマークスキー」を細々とやっています。

クロスカントリースキーにスチールエッジをつけた「BCクロカン」が大好き。

体力が無いので、軽量化されたスキーで滑走するのが最高です。

なお、普通のスキーは(まともなパラレルターンすら)出来ません。

 


Telemark & BCxc best

 

■AI・機械学習など

本業では、IoTエンジニアともいえる仕事をしています。

そこで、これから勉強していきたいAI・機械学習など、エンジニア技術的なこともまとめていきたいです。

出来れば、ランやスキーと連携したテーマを作っていきたいな~。