hirohirohirohirosのブログ

地方国立大学に通う情報系学部4年

2022-03-01から1ヶ月間の記事一覧

ゼロから作るDeep Learning 3 ステップ37~ステップ40 まとめ

hirohirohirohiros.hatenablog.com ステップ38 実際のtranpose関数 ステップ38 実際のtranpose関数 本書で実装したtranspose関数は2次元テンソルの転置のみを行うように実装されていましたが,numpyのtransopose関数はより汎用性が高いです. n次元テンソル…

Atcoder ABC215 振り返り

D問題で以前作成した素因数分解関数が役立ってくれました. hirohirohirohiros.hatenablog.com A - Your First Judge【AC】 言われたとおりやります. print("AC") if input() == "Hello,World!" else print("WA") B - log2(N)【AC】 1WAしてしまいました……純…

GCI2021Winterに参加しました.

東京大学松尾研究室が運営している,グローバル消費インテリジェンス寄附講座GCI2021Winterを参加し,修了しました. GCIとは 事前知識 講義 コンペ 最終課題 オフィスアワー 優秀生 まとめ 次回GCI GCIとは https://gci.t.u-tokyo.ac.jp/gci-2021-winter/ p…

Atcoder ABC245 振り返り

A - Good morning【AC】 始めに分に変換しておくとやりやすいです. A, B, C, D = map(int, input().split()) print("Takahashi") if A*60+B <= C*60+D else print("Aoki") B - Mex【AC】 set型はin操作がO(1)で出来ます. N = int(input()) A = set([int(i)…

ゼロから作るDeep Learning 3 ステップ33~ステップ36 まとめ

hirohirohirohiros.hatenablog.com ステップ35 高階微分の計算グラフ ニュートン法の問題点 ステップ35 高階微分の計算グラフ tanh関数を作成し,微分を何回も行うことで複雑な計算グラフを作る事が出来ます.本書でも,8階微分の計算グラフを掲載し,ひとき…

ゼロから作るDeep Learning 3 ステップ25~ステップ32 まとめ

hirohirohirohiros.hatenablog.com ステップ25, 26 計算グラフの可視化 ステップ27 テイラー展開の微分 ステップ32 高階微分の実装 ステップ25, 26 計算グラフの可視化 計算グラフを可視化するにはgraphvizというツールを使います.本書ではwindows版でのイ…

ゼロから作るDeep Learning 3 ステップ21~ステップ24 まとめ

hirohirohirohiros.hatenablog.com ステップ21 演算子の優先度 ステップ23 モジュール,パッケージ,ライブラリ ステップ24 複雑な関数の微分 Define-and-RunとDefine-by-Run ステップ21 演算子の優先度 左項がndarrayインスタンスで右項が自作インスタンス…

Atcoder ABC216 振り返り

Dは解説ACして2通りの解法で解きました.特に二つ目は,DAG,トポロジカルソートと新しい事を学べたので良かったです. A - Signed Difficulty【AC】 今までa bなどの標準入力は,脳死でinput().split( )と受け取ってましたが,これはinput()で"a b"という文…

Atcoder ABC244 振り返り

A - Last Letter【AC】 言われたとおりにやります. N= input() print(input()[-1]) B - Go Straight and Turn Right【AC】 N N = input() T = input() step = [(1, 0), (0, -1), (-1, 0), (0, 1)] now = 0 pos = [0, 0] for t in T: if t == "S": pos[0] +=…

トポロジカルソートをPythonで実装して関数化する

hirohirohirohiros.hatenablog.com 概要 アルゴリズムの内容 pythonコード 概要 トポロジカルソートは,有向無閉路グラフ(DAG)の各ノードについて,どのノードも出力先のノードより後ろに並ぶように並べるソートです.ようするに,ノードと一列に並べて,辺…

Atcoder ABC218, 217 振り返り

順序付き集合の問題に当たりました.C++にはあるけどPythonには無い機能でどうするか色々あるデータ構造のようです.今回はとある記事様https://qiita.com/tatyam/items/492c70ac4c955c055602のコードを使わせて頂きました.こういうときにすぐ対応出来るよ…

ゼロから作るDeep Learning 3 ステップ17~ステップ20 まとめ

hirohirohirohiros.hatenablog.com ステップ18 推論モードの切り替え ステップ19 @property ステップ20 演算子のオーバーロード ステップ18 推論モードの切り替え 今まで学習モード(逆伝播をする必要がある)と推論モード(逆伝播をする必要が無くメモリ使用量…

ゼロから作るDeep Learning 3 ステップ11~ステップ16 まとめ

hirohirohirohiros.hatenablog.com ステップ14 累積代入文の仕様 ステップ16 Variableクラスのbackwardをheapqで実装する ステップ14 累積代入文の仕様 a = a+bとa += bは全く同じ意味だと思っていましたが,厳密には違うようです. x = np.array(1) print(i…

ゼロから作るDeep Learning 3 ステップ5~ステップ10 まとめ

hirohirohirohiros.hatenablog.com ステップ7 assert ステップ9 0次元のndarrayの挙動 np.isscalar ステップ10 np.allclose テスト ステップ7 assert assert文は,条件を書いて条件がFalseの時例外を出します.プログラムの条件をテストする目的で使われます…

ゼロから作るDeep Learning 3 ステップ1~ステップ4 まとめ

DLに関する話だけで無く,Pythonやソフトウェア開発に関する事についても学ぶ事が多い本だと感じたのでまとめます. hirohirohirohiros.hatenablog.com 前書き インクリメンタル ステップ2 __call__メゾット raise NotImplementedError ステップ4 微分の近似…

Atcoder ABC221, 220 振り返り

A - Seismic magnitude scales【AC】 そのまま実装します. a, b = map(int, input().split()) print(32**(a-b)) B - typo【AC】 a, b = b, aと書くことで簡単に値を入れ替えることができます. S = list(input()) T = list(input()) if S == T: print("Yes"…

Atcoder ABC243 振り返り

約8ヶ月ぶりの緑パフォが出ました.レートが+30以上上がったのもその時ぶり……これを続けて入緑できるよう頑張ります. A - Shampoo【AC】 V V, A, B, C = map(int, input().split()) x = [A, B, C] f = ["F", "M", "T"] count = 0 while V >= 0: V -= x[cou…

Atcoder ABC225,224,223 振り返り

A - Distinct Strings【AC】 S=3と決まっているのでそれぞれで場合分けすれば良いです.S=Nと固定されていなくても,同じ文字の個数がx個y個z個...あったら,で求められます. a = set(input()) if len(a) == 1: print(1) elif len(a) == 2: print(3) else: …

素因数分解,エラトステネスの篩をPythonで実装して関数化する

hirohirohirohiros.hatenablog.com 概要 アルゴリズムの概要 素因数分解 エラトステネスの篩 pythonコード 素因数分解 エラトステネスの篩 概要 整数を引数にとり素因数分解し,keyを素因数,valueを指数としたdictを返す関数を作ります.素因数分解には試し…

Atcoder ABC227,226 振り返り

バーチャルで参加しました.227は複雑なこと色々考えたけど結局解けずに答え見ると非常にシンプルな解法という一番辛いパターンでした.対して226は227Cとほぼ同じdiffの226Dがあっさり解けました(227を本番で解いてたら1700位と過去最高順位だった……). A -…

Atcoder ABC242 振り返り

modは各演算ごとに行う. 最後にまとめてmodを取ろうとしたせいで,値が途中でおそらく64bitを超え,遅くなりTLEしてしまった.各演算ごとにmodを取るだけでAC出来る事に35分後に気付き800位近く順位を落としてしまった…… A - T-shirt【AC】 A>=Xなら確定で…

Atcoder ABC228 振り返り

バーチャルで参加しました(175位).D問題がUnion Findで解けるとは思いもしませんでした.しかも以前実装した形では解くことが出来ず少し書き換える必要がありました.既存のライブラリに手を加えて解く応用力も必要だなと感じさせられました. A - On and O…

Atcoder ABC229 振り返り

バーチャルで参加しました.(207位)尺取り法というアルゴリズムを初めて知りました.また,実装してから初めてUnion Findを使う問題に当たりました.解説でUnion Findを使うとだけ読んでから自力でAC出来たのは良かった点です.自力でUnion Findを使うと考え…

Atcoder ABC230 振り返り

バーチャルで参加しました(224位).緑diffのDを解けたので良かったです.ただ後で他人のコードを見ると自分のコードがぐちゃぐちゃだと感じるので更なる精進が必要です. A - AtCoder Quiz 3【AC】 pythonはfstringで0埋めをしてくれる機能があります. N = …

AI Quest2021に参加しました

2021年10月頃から始まったAI Quest2021に参加し,先日無事終了出来ました(課題を全て提出期限内に提出することでGOLD修了が与えられます).普段なじみの無いビジネスの視点も組み合わせて,AI活用について学ぶ事ができて非常に勉強になりました. AI Questと…