ryuiso2のブログ

ryuiso2のブログ

自分用のメモです。

高知旅行

f:id:ryuiso2:20200224222850j:plain

高知県

観光地

沈下橋

沈下橋とは欄干*1がなく、簡易的に作られる橋です。なお、沈下橋という名前ですが、増水時以外は普通に橋として機能しています。

高知県には「日本三大清流」の一つである四万十川が流れておりそこから派生する仁淀川など、水質が良い川が多い。それらに架かる沈下橋は絶景です。

名越屋橋(沈下橋

f:id:ryuiso2:20200224231408j:plain
名護屋

f:id:ryuiso2:20200224231448j:plain
名護屋橋からの景色

  • アクセス:高知市の中心地から車で約30分
  • 所要時間:橋を見て写真を撮るだけなら10分程度
  • 余談:四万十川よりも水が綺麗と言われている仁淀川に架かる沈下橋の中で最長の長さ

高知城

天守が現存するお城12城うちの一つです。

f:id:ryuiso2:20200224231420j:plain
高知城
f:id:ryuiso2:20200224231436j:plain
高知城天守

  • アクセス:高知市の中心地から徒歩15分
  • 所要時間:急ぎ目で回って40分
  • 余談:高知城を治めていたのは山内一豊という人*2で、長宗我部信親がいたわけではない。

ひろめ市場

f:id:ryuiso2:20210731103041j:plain

  • 市場という名前がついていますが、飲み屋街みたいなイメージです。
  • お土産を買うのにもいい場所です。
  • 目の前で藁で鰹を炙ってくれるお店もあります。

食べ物

鰹料理

f:id:ryuiso2:20200224235339j:plain
鰹料理

  • 鰹のタタキはタレではなく塩、レモン、にんにくでいただく
  • お造りはオレンジを絞ることも
  • 土佐巻:鉄火巻の鰹バージョン。個人的に一押し。

クエ鍋

f:id:ryuiso2:20200224235646j:plain
クエ鍋:花が開くときが食べごろ

  • 高級魚として有名
  • 白身魚にして油がしっかり乗っている
  • コラーゲン感が強く、ポン酢なしでそのまま食べるとくどいかもしれない
  • ポン酢をつけ過ぎるとポン酢の味しかしない(当たり前)

鰹料理とクエ鍋は 土佐料理 司 でいただきました。

炙り鯖寿司

f:id:ryuiso2:20200225000940j:plain
炙り鯖寿司

  • 見た目や名前で想像するよりも美味しかったです。
  • ひろめ市場で購入し、翌日の朝食でいただきました。

ゆずサワー

f:id:ryuiso2:20200226220520j:plain
ゆず。他にも「直七」などの柑橘類が有名です。

  • ひろめ市場にて購入(100円)
  • 居酒屋にいくと直七サワーなるものがあったりします。
  • 近くの商店街やひろめ市場で買える唐揚げと相性抜群
  • 高知県は鶏肉も有名なようです。

*1:橋から落ちないようにする柵みたいなやつ

*2:関ヶ原の戦い前後で活躍して徳川家康土佐国一国・9万8,000石を与えられ、移り住んだ。

京都マラソン2020を終えて

はじめに

f:id:ryuiso2:20200218210846p:plain

筆者が参加した京都マラソン2020回顧録です。

筆者の運動経験は中学生のときに3年間「市内~都道府県大会レベル」の運動部に所属していた以来、まともな運動をしていません。 また、筆者はメーカー勤務の技術者であり、主な練習は休日のみでした。

そんな筆者が42.195kmを5時間30分で完走するまでにやったことなどをまとめておきます。

練習について

概要

  • 練習期間:2019年9月1日~2020年1月16日(5ヶ月半)
  • 練習回数:平日1日、土日のどちらか1日(週2日)*1

練習内容

  • 始めの2ヶ月は平日3km, 休日5km
  • 次の2ヶ月は平日5km, 休日10km
  • 最後の1ヶ月は平日10km, 休日15km
  • 本番の道を前半、後半に分けて20kmずつ走る練習を12月と1月に実施

いずれもペースは体調に合わせて6~7分/km 程度

購入したもの

  • JYURYUトップス
    • 上に着るインナーウェア。
    • 背筋が曲がらないように支えてくれ、ランニングのフォームを維持してくれます。
    • 保温性
    • 吸汗速乾
    • 雨の中でも上半身を冷やすことなく完走できました。
  • スポーツタイツ
    • 膝、太ももの負担軽減
    • 下半身の保温
  • ソックス
    • ワコール製の5本指セパレート型
    • 足指がこすれることによるトラブルが減るので指が分かれているのがおすすめです。
    • 足首を保護してくれるのも心強い
  • ウエストポーチ
    • 腰、肩、いろいろつけるところがありますが、につけるのが一番揺れにくくオススメらしいです*2
    • ラソン当日はスマホエナジージェル×3、タオル、ティッシュペーパーを入れていました。
    • 慣れるために練習の時からつけるようにしていました。
  • エナジージェル
    • 170kcalのジェル×3
    • 10km, 20km, 30km地点付近で1本ずつ小分けにして飲みました。
    • サイズが小さく、高カロリーなものを選びました。

ワコール製品は高価ですが、知人、スポーツ選手からの評判がとてもよく、実際の使用感もとてもよかったです。 筆者は他製品と比較したわけではありませんが、おすすめの商品です。

走法

個人的な試行錯誤、マラソンが趣味の知人から聞いたことの中から実践してよかったと思うものを列挙します。

  • 足を高く上げすぎない

    • 基本的に身体を動かす量が少ないほうがいいという考えに基づいています。
  • かかとから地面に着地する

    • 足のへの衝撃を上手に分散させるためにも、かかとからつま先の方へなめらかに地面に足をつけるように走ります。
    • 意識しすぎると足を前に出しすぎて変な力が入ります。私は自然にかかとから着地できるようになるには練習が必要でした。
  • ストライドを小さくする

    • ストライドとは、一歩の距離[m]を指す。
    • 身長の0.6~0.7倍が理想らしいです。
    • 男性の方が筋力があり、大きい値になりがちだが、大きくなると足への負担が大きくなり、マラソン後半が辛くなりやすいです。
    • 初心者で完走を目指したい人はこの値を小さくします。
    • 早く走りたい人はこの値を大きくします。
    • プロのマラソン選手はこの値が1.0を超えるらしい。
    • この値が測れるスマホアプリを入れて練習してください。
  • ピッチを高くする

    • ピッチとは、1分間に何歩足を出すかを表す数値*3
    • 180/分 が理想らしいです。
    • 女性はこの値が大きくなりやすく、最後まで走り続けられる人はこの値が大きいらしいです。
  • 腕ぶらぶら走行

    • 長時間走っていると、肘の表(?)が痛くなります。
    • たまに腕をぶらぶらさせたり、ストレッチを行うことが重要です。
    • 筆者は下り坂や2kmおきになど、高頻度に腕を伸ばすように意識していました。
  • 上半身を起こす

    • 猫背や前傾姿勢は長時間走り続けるのに適しません。
    • 日常生活から姿勢よく過ごすよう意識していました。

コース攻略

f:id:ryuiso2:20200218232205p:plain
京都マラソン2020コース

0~5km地点(西京極~嵐山)

  • スタート時は前がつっかえて走れません。
  • 以下の理由で周りのペースが上がるので、自分のペースでゆっくりめに走りましょう。
    • 走れるようになる頃(15分後くらい)になると、ようやく走れるという開放感
    • 本番で気持ちが高ぶる
    • 周りのペースが上がっていることによりさらにつられて周りが早くなる。

5~15km地点(嵐山~大覚寺

  • アップダウンが激しい
  • 周りに抜かされても、ペースを落として体力の温存を優先したいです。

15~27km地点(大覚寺~加茂川河川敷)

  • 平坦で単調な道が続く
  • 身体的には走りやすいが、直線が多いので気持ち的に長く感じます。
  • 栄養補給、沿道の応援を楽しみながら、少しペースを上げて走ります。
  • 次のエリアではペースを上げにくいので、ここで少し前に出ておくのが良いかもしれません。

27~32km地点(加茂川河川敷~河原町丸太町)

  • 河川敷は狭く、足場も悪いので走りにくかったです。
  • 雨天時には足を取られるので体力も消耗します。
  • 道幅が狭い、ペースが落ちているランナーが増えてくるので、前の人を抜かすのが難しくなりペースを上げにくかったです。

32km~39km 地点(河原町丸太町~京大今出川通

  • 「30kmの壁」と呼ばれる最も辛いエリア。
  • 身体への負担がピークを迎えて関門*4を突破できなくなる人が多いゾーン。
  • かなりつらいですが、ここまで来たのだから最後まで頑張りましょう。
  • ここ以前にエナジー系のジェルを飲み切りましょう。*5

39km~ゴール(京大今出川通平安神宮

  • 緩やかな坂道が今出川通りで続きます(上り→下りの折返し)。
  • 疲労が溜まっている中での上り坂で歩く人も多いです。
  • 今出川通りの下り坂の後、もしくはもうしばらく進んだ後くらいからラストスパートをかけます。

ラソン当日周辺

一週間前の過ごし方

  • 身体にエネルギーを供給する肝臓に負担をかけないように心がけましょう
    • 禁酒
    • 過剰にタンパク質を摂らない(肝臓に負担がかかる)
    • 炭水化物を中心に摂取
    • お腹の調子を整えるためにヨーグルト

前日の過ごし方

  • 平安神宮にて受付を行う
  • 受付でもらったゼッケンをウェアにつけておく
  • 荷物をまとめる

服装

  • 5本指靴下
  • 下半身タイツ
  • ハーフパンツ
  • 上半身タイツ
  • 速乾性のスポーツウェア
  • 手袋(末端を冷やさないことが重要)
  • 帽子(雨をしのいだり髪の毛が邪魔にならない)
  • レインコート(防寒、防雨。途中で脱ぎ捨て可能)

朝食

  • 普段から食べ慣れているものを食す。
  • 筆者はお餅3個入りのお雑煮+ソーセージ4本。

ラソン後の過ごし方

  • ラソン後の夕食はタンパク質を補給するのがいいと思っていたが、あまり食欲がわかなかったので、食べやすいものが良いです。
  • 次の日からは食欲が回復したので、そこでタンパク質を補給しました(肉)。

注意事項

インスリンショック

  • エナジージェルを補給すると血糖値が急激に上がり、その後低血糖になることでパフォーマンスが下がる現象に注意
  • 対策はエナジージェルを補給する際は水分を同時に摂る、ジェルを小分けに摂取しましょう。

低体温症

  • 身体をガクガクさせて体温の維持を図るが体温が上がらない状態。
  • 冬場のマラソンではプロ選手でも陥る可能性があります。
  • 対策は末端を冷やさないように手袋やウェアに注意を払う。
  • (個人的に)歩いたり立ち止まると汗で冷えてしまう気がするので、遅いペースでも走り続けましょう。

最後に

練習内容を振り返ると十分な練習量とは言えないでしょう。それでも完走できたのは、沿道の力強い応援、給水給食荷物管理などのボランティアの方々、レースを共にしたランナー、応援してくれた家族や友人の支えがあってこそだと思います。独りでは到底走りきれる距離ではありませんでした。ありきたりな文面で恐縮だが、この気持を忘れないように改めて感謝の気持をここに残します。ありがとうございました。

SNSで走る宣言を大々的にして、友人に応援してもらうことで、レース中に心が折れそうになったときにも、「ここで終わるわけにはいかない」という気持ちになれました。

平安神宮のゴール後に完走記念タオルをいただきました。雨の中のあのタオルの暖かさと肌触りに安心感のようなものを覚えました。いろんな人の応援や達成感も相まって、まさに万感の思いでした。マラソンはリピーターが多いといわれています。リピーター達は、フルマラソンのゴールでしか味わえないあの感覚と、レースを共有する仲間を求めているのかもしれません。

*1:残業が多い時期や旅行に行ってる時は練習ができないので、週2日の練習ができた週の方が少なかったかもしれません。

*2:スポーツショップの店員さんが言ってました

*3:ストライドとピッチが決まると走行速度が決まります。理想的に走るとフルマラソンを3.5時間程度で完走できる計算になります。

*4:関所が8箇所くらいあって、制限時間以内にそこを通過しないと完走できなくなります。基本的に6時間完走を下回るペースだとアウト。

*5:吸収の早いものでも口にしてからエネルギーとして使えるようになるまでに30分以上かかるので、35km地点以降で摂取してもレースに無関係となってしまいます。

pytorch でハマりやすいポイント

f:id:ryuiso2:20200113014149p:plain
title

pytorch (pytorch=1.1.0)

基本的にはレファレンスを参照するが、躓きやすいところを中心にメモを残す。

GPUの使用

  • ソースコード中に明示的にGPU用変数に設定する必要がある。

  • モデル、変数、計算に関わるものすべてを .to(device) しなければならない。

  device = 'cuda'
  CNN().to(device)
  
  # 以下のように書くと便利
  import torch
  device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
  • 正しくGPUが使用できているかの確認は
  nvidia-smi -l

GPUの使用率を確認する。

Parameter の作成

  • Parameter とは、学習によって調整する学習パラメータのことである。

  • 括弧 () の順番が大切で[dim1, dim2] のサイズのパラメータを作成する際は、以下のように書く。

  import torch.nn as nn
  nn.Parameter(torch.Tensor(dim1, dim2).to(device))

tensor shape の確認

  • tensorの型を確認、取り出すには .size()を用いる
print(torch_tensor.size()) # タプル型を表示

cross-entropy loss (classification)

  • cross-entropy loss を用いる際、教師信号で与えるラベルは微分可能でかつ、long型でなければならない
from torch.autograd import Variable
y = Variavble(y).long().to(device) # Variavble()で微分可能に、long()でキャスト

DataLoader

  • DataLoader とは、pytorch で学習する際にデータをミニバッチサイズに応じて取り出すイテレーターである。

  • 一度TensorDataset を作成する必要がある。

from torch.utils.data import TensorDataset, DataLoader
  ## 学習前の準備
  ds = TensorDataset(x, y)  # TensorDataset の作成
  loader = DataLoader(ds, batch_size=BATCH_SIZE, shuffle=True)  # DataLoaderの作成
  
  ## 学習時
  for itr, (x, y) in enumerate(loader):
      # x, yを使って学習させる。

モデルの評価 (GPUメモリの節約)

  • pytorchでは計算履歴を変数が保存するので、すぐにGPUメモリを枯渇させてしまう。

  • 計算履歴を保存する必要のない評価時には、保存しない設定で計算すべき。

  • with torch.no_grad(): の中で実行すればよい。

  with torch.no_grad():
      model_forward() # ここに必要な処理を書く。

torch 変数の取り出し

  • そのままでも値を取り出すことはできるが、計算履歴を含まない値を取り出すにはitem() を使う
torch_tensor_value = torch_tensor.item()
  • また、GPU変数をnumpyに取り出す際には、.cpu().detach().numpy()として取り出す。
numpy_array = gpu_tensor.cpu().detach().numpy()

コマンドラインでAnaconda環境を整える

 $ wget https://repo.anaconda.com/archive/Anaconda3-2019.03-Linux-x86_64.sh
  • ダウンロードしたファイルをbashで実行。以下のようなメッセージが出るので、Enterキーで規約を読み進める。
  $ bash Anaconda3-2019.03-Linux-x86_64.sh
  Welcome to Anaconda3 2019.03
  
    In order to continue the installation process, please review the license
    agreement.
    Please, press ENTER to continue
  • 最後にyesを入力して続行
  cryptography
      A Python library which exposes cryptographic recipes and primitives.
  
  
  Do you accept the license terms? [yes|no]
  [no] >>>yes
  • anacondaのインストール先の指定(デフォルトはEnterを押すだけでユーザーのホームディレクトリ)
    Anaconda3 will now be installed into this location:
    /home/vagrant/anaconda3
    
      - Press ENTER to confirm the location
      - Press CTRL-C to abort the installation
      - Or specify a different location below
    
    [/home/vagrant/anaconda3] >>>
  • 最後にcondaを初期化していいかどうかの確認 yesを入力する。
      installing: conda-build-3.17.6-py37_0 ...
      installation finished.
      Do you wish the installer to initialize Anaconda3
      by running conda init? [yes|no]
      [no] >>>yes
  • 以下のような画面が表示され、完了
      WARNING: The conda.compat module is deprecated and will be removed in a future release.
      no change     /home/vagrant/anaconda3/condabin/conda
      no change     /home/vagrant/anaconda3/bin/conda
      no change     /home/vagrant/anaconda3/bin/conda-env
      no change     /home/vagrant/anaconda3/bin/activate
      no change     /home/vagrant/anaconda3/bin/deactivate
      no change     /home/vagrant/anaconda3/etc/profile.d/conda.sh
      no change     /home/vagrant/anaconda3/etc/fish/conf.d/conda.fish
      no change     /home/vagrant/anaconda3/shell/condabin/Conda.psm1
      no change     /home/vagrant/anaconda3/shell/condabin/conda-hook.ps1
      no change     /home/vagrant/anaconda3/lib/python3.7/site-packages/xonsh/conda.xsh
      no change     /home/vagrant/anaconda3/etc/profile.d/conda.csh
      modified      /home/vagrant/.bashrc
      
      ==> For changes to take effect, close and re-open your current shell. <==
      
      If you'd prefer that conda's base environment not be activated on startup,
         set the auto_activate_base parameter to false:
      
      conda config --set auto_activate_base false
      
      Thank you for installing Anaconda3!
      
      ===========================================================================
      
      Anaconda and JetBrains are working together to bring you Anaconda-powered
      environments tightly integrated in the PyCharm IDE.
      
      PyCharm for Anaconda is available at:
      https://www.anaconda.com/pycharm
  • すぐにanacondaを利用できるように
        $ source ~/.bashrc
  • インストールの確認
        $ conda -V
        conda 4.6.11
  • condaの更新(最後にyを入力)
        $ conda update -n base -c defaults conda
  • 自分の環境の構築(最後にyを入力)
        $ conda create --name my_env python=3.6.8
  • 仮想環境の立ち上げ(ターミナルの先頭に(myenv)がつけば完了)
        $ conda activate my_env
        (myenv)
  • proxyの設定 (~/.condarc)に以下を記述
        proxy_servers:
            http: http://[servername]:[port]