日々精進

新しく学んだことを書き留めていきます

2022-01-01から1年間の記事一覧

cuDF21.08を実行すると「ValueError: Cannot convert value of type NotImplementedType to cudf scalar」エラー

AI

原因はcudf21.08numpy1.23と互換性がないため。numpyのバージョンを1.22にダウングレードしたら直った。 参考: stackoverflow.com

cuDFはWSL2ではPascalアーキテクチャのGPUでは動かない

AI

そんな・・公式サイトの動作要件は満たしているのに・・ 以下のIssueによると、RAPIDS(cuDF) version 22はWSL2とPascal GPUでは動かない。 github.com 以下によるとRAPIDSをversion21にすると直るっぽい。 github.com さらに、以下によると21.10以降だとだめ…

cuDFはPascalアーキテクチャ以降のGPUでないと動かせない

AI

cuDFを動かそうとすると以下のエラーが出た。 UserWarning: A GPU with NVIDIA Pascal™ (Compute Capability 6.0) or newer architecture is required. Pascal以降じゃ無いとだめなのか・・TensorFlowはMaxwellでも大丈夫だったのになぁ。

Jestでテスト実行時にconsole.logでログが出ない

IT

Jestでテストを実行するコマンドに--silent=falseオプションを付けないとconsole.logでログは出ないらしい。まじか。 参考: stackoverflow.com

prismaのshemaを変更すると「Field does not exist on enclosing type」エラーが出るようになった

IT

他のブランチの変更を取り込んで結構大きくprisma schemaが変わった後、typescriptのprisma clientコードを生成し、 dbにアクセスするコードを実行すると掲題のエラーが出た。 原因はprismaの古いcacheが残っていたため。以下を参考に.prismaという名前のフ…

DBのテーブルにcolumnを追加するDDLを実行すると「ERROR: column "xxx" of relation "yyy" contains null values」エラー

IT

原因は、すでにデータが入っているテーブルにnot null列を追加しようとしたが、デフォルト値が設定されていないので既存の行の新しく追加する列の値がnullになってしまい、エラーになっていること。 データを一度全部消してからDDLを実行すると直った。

VSCodeでテストコードを書いてたらdebugボタンが出たり消えたりして鬱陶しい

IT

VSCodeの設定で "editor.codeLens": false を設定するとdebugボタンが出なくなった。これでコードを書いている時に行がガクガクして鬱陶しい問題から解放される・・ 参考: github.com

VSCode&Jestでテストを実行すると「too many arguments」エラー

IT

原因はdescribeの第一引数とtestの第一引数の文字列が同じか、一方が他方に含まれることだった。 例えば、以下のようにどちらも"comment1"になっているとエラーになる。 describe("comment1", () => { test("comment1", async () => { ... }); }); 謎の挙動…

単体テストでPrismaをMockするときに$useを使ってはいけない

IT

prismaの$use機能を使うと、DBに実際はアクセスせずMockデータを返すことができる。 www.prisma.io ただ、この機能を使う場合、PrismaClientのインスタンスを作る必要があり、作った時にDBに接続しにいって、テスト環境でDBが無くてエラーになることがあった…

VSCodeでエディタ上のコードをすべて折りたたむ

IT

Ctrl+K, Ctrl+0 ですべて折りたたむ。最近VSCode触ってるけどIntelliJ系のIDEの方が好きだなぁ。 参考: stackoverflow.com

pgadminでクエリを実行するとrelation does not existエラー

IT

テーブル名を"でくくると直った。 参考: buralog.jp

VSCodeでテストコードを書いていると「debug」ボタンが出たり消えたりして鬱陶しい問題

IT

ボタンが出ると1行全体が下がるので、書いてる行が上がったり下がったりしてすごい鬱陶しい・・ VSCodeの設定で "editor.codeLens": false を設定するとdebugボタンが出なくなった。 参考: github.com

yarnタスクが固まる問題

IT

急にyarn buildなどのタスクを実行するとterminalが固まるようになった。 git stashをしてもやはり固まる。 原因はいつの間にかcore dumpが吐かれていたことだった。プロジェクトフォルダにcore.xxxxのようなファイル名で4GBのファイルができていた。 これを…

VSCodeでremote container内にapolloserverを起動した時に、ローカルのブラウザから接続できない

IT

EC2上にremote containerを立ち上げ、そこに接続して開発をしている場合。 EC2にsshトンネルを掘って接続している。 あるタイミングまでは普通に開発用サーバをコンテナで起動してローカルのブラウザからアクセス出来ていたが突然出来なくなった。 原因はわ…

windows11 homeでext4.vhdxの容量を削減する

IT

WSL2を使っていると、ext4.vhdxというファイルの容量がすごく大きくなることがある。これを小さくする方法としてOptimize-VHDを使う方法がよく紹介されているが、これはHyper-Vの機能の一つらしく、Hyper-VはWindows11 Proでないと使えないのでWindows11 Hom…

VSCodeのターミナルで入力が出来なくなった場合の対処法

IT

ターミナルの右上の+ボタンをクリックして新しくターミナルを開き、その後既存のターミナルを削除すればよい。 参考: www.javadrive.jp

/var/lib/docker/overlay2の容量が大きいので削減したい

IT

/var/lib/docker/overlay2の容量をdu -sh /var/lib/docker/overlay2で調べたところかなり大きかったのでびっくりしたが、以下によるとduでは正確な容量を調べられないらしい。 www.creationline.com /var/lib/docker/overlay2の容量を手っ取り早く削減するた…

nvidia/cuda:11.5.2-devel-ubuntu20.04上でRAPIDSを動かすと「RuntimeError: Failed to dlopen libcuda.so」エラー

AI AI

DockerHubのnvidia/cuda:11.5.2-devel-ubuntu20.04をベースイメージとしてコンテナを作り、その上でcudfを動かすと掲題のエラーが出た。 原因はLD_LIBRARY_PATHで指定しているcudaのパスが間違っていること。多分ベースイメージでは以下の環境変数が設定され…

SageMakerでTrainingJobを起動すると「ClientError: Failed to invoke sagemaker:CreateProcessingJob. Error Details: The account-level service limit 'ml.m5.2xlarge for processing job usage' is 20 Instances」エラー

AI

TrainingJobを起動したのに、エラーメッセージは「CreateProcessingJobを実行したけど、processing jobのservice limitに引っかかったよ」と言っている。 TrainingJobを起動したはずなのになぜ・・と思ったら、TrainingJobは裏でProcessingJobを起動している…

kaggleのwinner solutionまとめサイト

AI

以下のサイトで過去の各コンペのwinner solutionがまとめられている。こんな便利なものがあったとは・・・! https://farid.one/kaggle-solutions/ 作者の方に感謝します。

daskで何故か使用メモリ量が大幅に増えるケースがある

AI

手元のデータセットで以下のコードを実行すると使用メモリ量が2GB程度増えた。 def _get_difference(self, num_feat_names: List[str], num_feats: DataFrame) -> DataFrame: def diff(df: DataFrame) -> DataFrame: return df.diff(1) npartitions: int = m…

pythonでdecoratorを付けたメソッドの戻り値の型チェックができるようにする

IT

以下のようにdecoratorを定義すると、@timerを付けたメソッドの戻り値の型がAnyになってしまい、不便。 def timer(fn) : from time import perf_counter def inner(*args, **kwargs): print(f'start {fn.__name__} {CommonUtil.now_datetime_for_log()}') Co…

pythonでtupleをreturnする時のtype hintは-> Tuple[bool, str]のように書く

AI

今まで def func() -> (DataFrame, str): のように書いてたけど、これだとPyCharmでは戻り値の型を正しく推論できないことがあった。つまり、以下のようにfuncの戻り値をa,bで受けた後、a.まで入力してもDataFrameのメソッドが補完候補に出ない。 a, b = fun…

gradleでインストールしたライブラリが依存しているライブラリがインストールされない

IT

原因は依存関係がoptionalだったため。例えばspring-data-redisだと、jedisは依存ライブラリではあるが(optional)と記載されている。 https://mvnrepository.com/artifact/org.springframework.data/spring-data-redis/2.7.2 optionalは複数のライブラリのど…

初期化時に何か処理を追加したい場合は__post_init__が便利

AI

@dataclass class MyClass: _myvar のように@dataclassを使っていると、initを自動生成してくれて便利だが初期化時に何か処理を追加したい場合に困る。 以下のようにpost_initメソッドを実装するとinitを実行した後で実行してくれるので便利。これでdef init…

sagemaker training jobを実行すると「standard_init_linux.go:228: exec user process caused: no such file or directory」エラー

AI

原因は、sagemaker training jobはtrainという名前のスクリプトファイルを最初に実行するが、そのファイルの改行コードがCRLFになっていたため。LFにしたら直った。 参考: stackoverflow.com

daskでgroupbyしてから行間のdiffをとる

AI

Pandasの場合は以下のようにgroupbyしてからdiffを呼ぶと1行前とのdiffが取れるが、daskにはdiffメソッドがない。 features[num_features + ["customer_ID"]].groupby(["customer_ID"]).diff(1) daskの場合、map_overlapメソッドを使って実装する。 diffや移…

PyCharmで開発していると「The Git process exited with the code 1」エラー

AI

WSL2からアクセスできるパス(「\wsl.localhost\Ubuntu\opt\ml\mypj」のような感じ)をPyCharmで開いて開発していると、掲題のエラーが発生した。PyCharmを開いてすぐは大丈夫だけど、たまにエラーが出る感じ。一旦発生するとWSLを再起動しないと直らないの…

pd.concatでDataFrameを列方向に連結する場合、indexが揃っているか確認する

AI

pd.concat([df1, df2], axis="comuns") のようにして列方向に連結する場合、df1とdf2のindexが同じ行同士を結合させるので、indexの値が揃ってないと例えば「df1にあった列はすべてnanでdf2にあった列にだけ値が入っている行」とかが出来てしまう。 reset_in…

pd.concatでDataFrameを列方向に連結する場合、indexが揃っているか確認する

AI

pd.concat([df1, df2], axis="comuns") のようにして列方向に連結する場合、df1とdf2のindexが同じ行同士を結合させるので、indexの値が揃ってないと例えば「df1にあった列はすべてnanでdf2にあった列にだけ値が入っている行」とかが出来てしまう。 reset_in…