.

雑記

手術をした話

2023年1月、生まれて初めて手術を経験した。 手術と言っても大きなものでなく内痔核を切除する比較的お手軽?にできるものだ。 もちろん重症度合いによるし、医者に行くまでに勇気がいるという点では全くお手軽ではないけども。 新年早々専門クリニックで診断されるやいなやすぐにでも取りましょうと翌週末に術日が決まった。 有給がとりやすい会社に勤めていて本当によかった。

突然痔になったのでなく、これまでの不摂生の積み重ねと環境の変化が徐々に症状を悪化させていった。 その手術にいたるまでの話を半生と反省を併せて書き残そうと思う。

今から遡ること10年前、高校3年の冬、部活もとっくに引退し大学受験期間真っ只中の頃からお尻が狂いはじめる。 まぁ今までサッカー漬けだった人間がその時間を机に向かってたら狂うのもしかたないよね。 最初のきっかけは通便時の出血だった。 しかし毎回出る訳でもないし痛みがある訳でもないし少し経てば止まるしで楽観視していた。 わたし出血耐性低いなぁなどと便座で止血待ちながら呑気に某死にゲーを連想させていた。 親には勘づかれたくなかったので、当たりの日はトイレ掃除をかかさずした。 しかし流石、母は偉大である。 「あんた大きい方大丈夫?」 きっと下着の些細な汚れなどから察知したのだろう、地元のクリニックに行かされることになった。 そのクリニックのお医者様はかなり古風というかキツめの言い方をする人で、 後に他の病院に診てもらおうにも前あんなこと言われたしなぁと行くのを阻まれる要因となった。 結局そこでは薬を2週分出してもらう程度の診断だった。 「10代の尻じゃねぇ」と言われたこと今でも忘れねぇからなあのオヤジ。 母にすぐに医者に行かされたのには理由があった。 両親共に経験があり、父に至っては昔救急車を呼んだほどらしく手術も済んでいた。 私は痔持ちのサラブレッドだった。

大学進学も無事に決まり、キャンパスが埼玉で少し実家から離れていたので一人暮らしをすることになった。 思い返せば、ここでの2年間の生活が症状を次のステージへと悪化させたのではと同時に、懐かしい思い出が蘇る。 朝食を食べなくなっていったなぁとか、 酒とタバコにはまっていったなぁとか、 バイト先でよく酔っ払いの年配客に絡まれてストレスだったなぁとか、 ずっと机に座ってモンハンしていたなぁとかetc… 思い出のほんとんどが肛門へのダメージに直結していて震える。 月に数回ある程度の出血も一人暮らし2年目の終わりには週1程度かつ少し痛みを伴うようになっていた。 ただ、幸いにも学部3年からはキャンパスが東京に変わり実家から通うようになる。 実家に帰ってからは朝食を嫌でも食べるようになった。 最近知ったことだが朝食をとることは非常に大切らしい。 なんでも朝に胃腸を活性化させ反射的に排便させることが大事だとか。 この頃の間違いは、深夜にかけてのバイトを始めたことだ。 バイト帰りにセブンの蒙古タンメンカップ麺とスト缶、ビールセットを買って夜食にする癖がせっかくの実家の食生活を破壊した。

研究室で酒を飲みはじめたこともよくなかった。学生としても。 教授が帰ったあとに買い出しに行き研究そっちのけで酒盛りをしていた気がする。 これは修士へ進学した後も、同期が卒業し、一人であっても続いた。 就活と修論に取り組む前後は精神的にもおかしくアル中と言われてもしょうがない生活をしていた。 この辺りで禁煙を始めたが、ずっと座りっぱなしになるよりも、 研究室から喫煙室がある1階に定期的に出歩いた方が血行もよくなって結果尻にとって健康だったのではとさえ思える。 一度だけ大学の医務室に健康相談をしに行ったことがある。 職員にこんな学生が来たのは初めてだと言わんばかりの反応をされたのを覚えている。 そこでは病院を紹介されたが、地元の医者の診断経験を引きずったこともあって、 結局大学6年間で病院やクリニックに行くことはなかった。

新卒売り手市場と言われていたにも関わらず30社くらい受けてなんとか内定したのが今の会社だ。 東京を第一志望にして事前に書類を提出していたが、面談の中で東京は人気で無理なのだろうなとなんとなく察して、 東京にそれなりに近く大学OBに事前に話を聞いていた静岡を推す方針に変えた。 人気がなかったのか、枠が多かったのかあっさり静岡配属に決まった。 入社してから新人研修が終わるまではストレスがかかりっぱなしで尻への負担は加速していたと思う。 まず研修の一環と謳って旅館で3週間程度同期と共同生活させられたのがきつかった。 気分を紛らわすために一人でよく暴飲していたが、相部屋だった同期には申し訳なかった。 社員寮に移り約3年間は症状が良くも悪くもならない安定期に入る。 様子がおかしくなったのは寮から借り上げ社宅に引っ越してから、正確には2022年の夏過ぎ辺りからだった。 通便後に腫れがひかなくなったのだ。俗に脱肛というらしい。 これは予測に過ぎないが、温水洗浄便座でなくなったのが主な原因だったのではと考えられる。 総務に提示された物件をもっとよく吟味して決めるべきだった。 今では通便、朝シャワーのセットが流れになった。血行をよくすることは超大事だ。 脱肛の状態では痛みが常に出続け、正直仕事にならない。 静岡に来てから市内の消化器科と内科に行ったことはあったが、 そこまで悪い状態でないと薬を出されるだけだったので今回は専門のクリニックに行こうと冒頭の記載に戻る。

手術前にまず台に背中を丸めるように座って腰に4,5回にわたって腰椎麻酔の注射を打たれた。 最後に打ったのが最高に痛かった。 その後仰向けで寝て膝を胸に抱えて開く体制になる。 このとき両サイドに看護師さんが配置していて膝を抑えられる。 その日初めてお会いした看護師さんに顔色が青白いことを心配され、 もともとだと言ったが、よくよく考えたら麻酔打たれて今まさに肛門に刃物向けられてたら青白くもなるだろと思った。 手術自体は20分程度で終わったが麻酔が切れた後の痛みが絶望的だった。 鎮痛剤を飲んでも効き目がなくその日は一睡もできなかった。 翌日よく薬を見ると鎮痛剤と胃薬を間違えていたのがその原因だった。 (いや、これ、ぱっと見左のピンクを鎮痛剤と勘違いするよなぁ・・・)

あと、尿動カテーテルを抜くときの痛みが最悪だった。 手術前に大腸内視鏡検査もしたが、点滴を打った時点で意識が朦朧として寝てる間に行われた。 このときどうやらカテーテルも入れられたらしい。 数週間はアルコール制限をしたほうがいいと聞くが、 年末に注文したベルギービールの福袋が手術翌日に届いて我慢できるか非常に怪しい。 すでに手術前1週間一滴も飲んでいないので会社で暴れちゃわないか心配だ。 ビールといえば年始に会社の保健師に呼び出されて健康指導された。 痔とは全く関係なく、2年連続尿酸値が高いことの指摘で、そこでは一日に水を2リットル飲みなさいと言われた。 水をよく飲み事は便も柔らかくするというので個人的に一石二鳥だ。

ということで

  • 朝飯を食べること
  • 水をよく飲むこと
  • アルコールを飲みすぎないこと

この一見意識低い目標を掲げて今後は健康に生きようと思う。

BERTとT5で含意関係認識

github.com

試した事前学習のモデル

  • cl-tohoku/bert-base-japanese-v2
  • sonoisa/t5-base-japanese

使用したデータ

nlp.ist.i.kyoto-u.ac.jp 句点あったりなかったりするので削るのとTokenizerに入れるときにタブスペースが邪魔なので以下のように削る

re.sub(r'[\u3000 \t。]', '', text)

触った所感

  • 大体のパラメータはデフォルトで十分な精度がでる
  • pl.LightningModule がわかりづらい
  • グラボがアチアチになる(冷房必須
  • 使い方はわかったが理論は一生理解できないと思う

つまづいたところ

  • cusolver64_10.dllが見つからなくてGPUで学習ができないのでファイル名を書き換える github.com
  • self.hparmsに代入しようとすると下記エラーになるのでself.save_hyperparameters()を使う
File "C:\Users\user\AppData\Local\Programs\Python\Python39\lib\site-packages\torch\nn\modules\module.py", line 1178, in __setattr__
    object.__setattr__(self, name, value)
AttributeError: can't set attribute
  • GPUを使う場合にDataLoaderのnum_workersを>0にしようとしても=0より遅い or クラッシュするので下記警告は無視する(環境に依りそう)
C:\Users\user\AppData\Local\Programs\Python\Python39\lib\site-packages\pytorch_lightning\trainer\data_loading.py:105: UserWarning: The dataloader, train dataloang the value of the `num_workers` argument` (try 24 which is the number of cpus on this machine) in the `DataLoader` init to improve performance.
  • 2文を入れるタスクの場合はTokenizerに2文分けてをいれる必要がある
  • T5の場合、出力が特殊で3にしても学習結果が悪いとラベル数が増えたりして意味不

    出力は “0”, “1”,…“8” のラベルとするが、SentencePiece は先頭に特殊トークン(“?”)を付けるときがあること、シーケンス終了トークン(“”)を考慮して出力シーケンス長を 3 とした はじめての自然言語処理 第7回 T5 によるテキスト生成の検証 より

参考

メモ

環境:VirtualBox6.0.4 Ubuntu18.04.1LTS

Ubuntuで最低限インストールするもの:

sudo apt install texlive-full gnuplot 

LaTeX

修論を書くまでplatexを主に使ってきたが, なんとなくuplatexが主流になりつつあるのでここではuplatexを使う. uplatex+dvipdfmxで普通にpdfを作成しようとするとwarningが出てフォント埋め込みがうまくいかない.

dvipdfmx:warning: CMap has higher supplement number than CIDFont: GothicBBB-Medium
dvipdfmx:warning: Some chracters may not be displayed or printed.

解決策としてsudo kanji-config-updmap-sys autoを実行するとうまくいくようになる.

フォント変更

kanji-config-updmap-sys statusと実行すると

CURRENT family for ja: ipa
Standby family : ipaex

となりデフォルトでipaが使われていることが分かる.そこでフォントを源真ゴシック,源流明朝に変更する.

源真ゴシック:http://jikasei.me/font/genshin

源流明朝:https://github.com/ButTaiwan/genryu-font

それぞれダウンロードしたzipを解答し GenShinGothic-Medium.ttfGenRyuMinJP-Regular.ttf/usr/local/share/texmf/fonts/truetype/public/へ,

mapファイル:https://github.com/ntyaan/setup_ubuntu18.04/tree/master/genthingothic

をダウンロードし ptex-genthingothic.mapuptex-genthingothic.mapをフォルダgenthingothicに入れて/usr/share/texlive/texmf-dist/fonts/map/dvipdfmx/ptex-fontmaps/へコピーする:

~$ sudo mkdir -p /usr/local/share/texmf/fonts/truetype/public
~$ sudo cp GenShinGothic-Medium.ttf GenRyuMinJP-Regular.ttf /usr/local/share/texmf/fonts/truetype/public/
~$ sudo cp -r genthingothic /usr/share/texlive/texmf-dist/fonts/map/dvipdfmx/ptex-fontmaps/
~$ sudo mktexlsr
~$ sudo kanji-config-updmap-sys genthingothic

改めてkanji-config-updmap-sys statusを実行すると

CURRENT family for ja: genthingothic
Standby family : ipa
Standby family : ipaex

となり,フォントが変更されたことが確認できる.ただこれが正規のやり方なのか不明なので注意.

修論テンプレート

学部の頃は研究室の指定に従って論文を書いたが,修論ではページ余白くらいしか指定がなく,事務から提示される論文例の画像を参考に概要や表紙,本文を作る必要がある.なぜ公式でサンプルファイルを作らないのか… 今回作成したテンプレートをここに載せる.

f:id:ntyaan:20190217140132p:plain:w200

f:id:ntyaan:20190217140335p:plain:w200

f:id:ntyaan:20190217140518p:plain:w200

パッケージ

\usepackage{slashbox}

基本的には\backslashbox{行}{列}のように使うが文字数などによってtabular環境とサイズが合わなくなることがあるため場合によっては{\small \backslashbox{行}{列}}や空白文字で調整する必要がある. 以下リンクからDLできるslashbox.styをtexソースと同じディレクトリに入れないとコンパイルできない.

https://ctan.org/tex-archive/macros/latex/contrib/slashbox

\usepackage{diagbox}

slashboxの拡張版. 表のセルが何を示すのか表示したいとき\diagbox{行}{Hoge}{列}のように使う.

https://ctan.org/pkg/diagbox

\usepackage[dvipdfmx]{hyperref}\usepackage{pxjahyper}

pxjahyperはpdfにアウトラインをつける. オプションをつけることで詳細にアウトラインを設定できる. 修論では以下のように設定した.

\usepackage[bookmarksdepth=subsection,dvipdfmx,setpagesize=false,bookmarksnumbered]{hyperref}

  • bookmarksdepth=subsection : アウトラインのツリーをsubsectionにする.
  • setpagesize=false : これをつけないとページがズレる.
  • bookmarksnumbered : アウトラインに番号をつける.

pxjahyperは日本語対応のため記述する.ないとアウトラインが文字化けする.

\usepackage{lscape}

表や図を180度回転させたいときに使う.

\begin{lscape}
#表や図
\end{lscape}

\usepackage{tikz}

図を作るのに便利. http://www.texample.net/tikz/examples/からサンプルを取るのがおすすめ.

beamerで単純な矢印を書きたい場合は以下のように書けばいい:

\begin{tikzpicture}[line width=3pt]
   \draw[->](0,0)--(0.6,0);
\end{tikzpicture}

線の太さはline widthを,線の長さや方向を変えたいときは座標(0,0)--(0.6,0)を変えればいい.

tikzによって色を柔軟に設定できるようになる. 例えば\textcolor{red!50}{テキスト}とすると\textcolor{red}{テキスト}より淡い赤色のテキストになる.

以下tikzサンプル :

f:id:ntyaan:20190217123923p:plain:w200

f:id:ntyaan:20190217121617p:plain:w200

f:id:ntyaan:20190217124820p:plain:w200

f:id:ntyaan:20190217124622p:plain:w200

gnuplot+tikz (\usepackage{gnuplot-lua-tikz})

gnuplotにちゃんと数式を埋め込みたいとき,epslatexgnuplot+tikzを使う必要がある. epsよりpdf出力のほうが画質がいい(気がする)のでここではgnuplot+tikzでの画像作成のためのスクリプト例をのせる:

f:id:ntyaan:20190217162452p:plain:w200

f:id:ntyaan:20190217162546p:plain:w200

f:id:ntyaan:20190217162620p:plain:w200

f:id:ntyaan:20190217162652p:plain:w200

f:id:ntyaan:20190217162724p:plain:w200

その他細かいテク

下付き,上付き文字を真下,上へ(\limits)

状況よって\sum\prodの下付き,上付き文字が横にくることがあるが\limitsを使うことでそれを回避できる.

\documentclass{standalone}
\begin{document}
$\sum_{i=1}^{C} u_{i,k}=1$\\
$\sum\limits_{i=1}^{C} u_{i,k}=1$
\end{document}

f:id:ntyaan:20190217171941p:plain:w200

\tabularのセルを複数行にする

まず\shortstackが思いつくが,\tabularを重ねてもきれいに書ける.

\documentclass{standalone}
\begin{document}
  \begin{tabular}{l|l}\hline
あ&い\shortstack{x\\yy\\zzz}う    \\ \hline
あ&い\shortstack[l]{x\\yy\\zzz}う \\ \hline
あ&い\shortstack[r]{x\\yy\\zzz}う \\ \hline
  \end{tabular} \\
    \begin{tabular}{l|l}\hline
あ&\begin{tabular}{c}x\\yy\\いzzzう\end{tabular}    \\ \hline
あ&\begin{tabular}{l}x\\yy\\いzzzう\end{tabular} \\ \hline
あ&\begin{tabular}{r}x\\yy\\いzzzう\end{tabular} \\ \hline
  \end{tabular}
\end{document}

f:id:ntyaan:20190217171330p:plain:w200

\tabularのセルに色をつける(\cellcolor)

\documentclass[dvipdfmx]{standalone}
\usepackage{slashbox}
\usepackage{colortbl}
\usepackage{tikz}
\begin{document}
  \begin{tabular}{l|l|l|l}\hline
    \backslashbox{手法}{精度} & A & B & C
    \\\hline\hline
    conv.1  & \cellcolor{blue!50} 90\% & \cellcolor{red!50}98\% & \cellcolor{red!50}99\% \\\hline
  \end{tabular}
\end{document}

f:id:ntyaan:20190217172952p:plain:w200

! Output loop---100 consecutive dead cycles.! LaTeX Error: Too many unprocessed floats.の回避

表を大量に連続して書くと1つ目のエラーが起こので,該当箇所に \maxdeadcycles=1000と記述することで回避する.

関連して2つ目のエラーが起った可能性が高いのでプリアンブルに \usepackage[maxfloats=256]{morefloats}を記述しておく.