Webプログラミング始めます
お正月前に記事を書いてから全然更新ができていませんでした。
春休みは毎日更新できるように努力します。
先日、とある技術系youtuberの動画を見ました。その内容は、大学生でWeb系のプログラミングを学べば、アルバイトせずに稼ぐことができるという話です。
私は稼げるというワードに惹かれてしまいました。もともとWeb系のプログラミングに興味があり、Rubyを少し勉強していました。
そこで、
春休みは毎日Progateで勉強しよう!
具体的には何をするのか?
このあたりを毎日少しでも勉強していきたいと思います。
あと、ブログの更新癖をつけるためにやった内容を毎日まとめるようにします!
やっぱりPythonだな!
ついに12月に入りました。今年ももうすぐ終わりです。
だからと言って特に変わることはないんですけど…
1つ前の記事で「VBA使って自動化するぞぉぉ」って意気込んでたんですけど、やめることにしました。
なぜか?
VBAってエクセルしか自動化できなくね? って思っちゃったから。
わざわざVBA使うくらいならもっと便利なのあるじゃん!
誰でも簡単プログラミング!Python!
ということでPythonで自動化していくことにしました。
もともとPythonはやっていたので python 3.6 と anaconda が入っていました。
なのでjupyter notebookを使えばよかったんですが、あえてatomで作ってみることにしました。
環境構築
まず、Atomからダウンロードしてくる
てきとーにインストール
ここからが大事!
パッケージの追加!
atomでpythonを始めるには初期状態のatomじゃ不便。
そこで活躍するのがパッケージ(拡張機能的な?)!
パッケージのインストールはすごく簡単。
ここで入れたいパッケージを探すだけ!
今回入れたパッケージ
autocomplete-paths
color-picker
symbols-tree-view
highlight-line
highlight-selected
minimap
auto-complete-python
atom-beauty
linter
linter-python
Python-Debugger
今回はこれだけ入れましたが、有用なパッケージはまだまだありそうです。
それぞれのパッケージについては別の記事でまとめようと思います。
ということで無事環境が整ったので
Pythonによる自動化初めて行きたいと思います!
ひっさしぶりの投稿。今後どうするか。
とても久しぶりの投稿です。
大学が忙しく、いつの間にか1か月振りの投稿となってしまいました。
最初は「 1日1記事 」と思って始めたブログでしたがすぐに投稿が止まってしまいました。
実は時々「書こうかなぁ」とは思っていたんですが、「明日やろう」、「週末やろう」と先延ばしにしてしまっていました。
しかし、昨日(11/28)このままではいけない!と思って気合いを入れ直しました。
ということで、今日からは「1週1記事」を目標にやっていきます!
(しょぼくなったとかは言わないで)
今後何をするのか
前々から思っていたんです。
PCで行う作業を出来る限り自動化していきたいな! って。
それで思い出したんです。
確か VBS で色々出来たよな?って。
以前、ほんの少しだけ VBSに触れたことがありました。
でも、ホントにほんの少しだったので VBS の事を全く覚えてませんでした。
そこでVBSを調べました。いろいろ調べました。
すると、VBAのほうが良いことが分かりました。
(詳しくは今度、記事にしてまとめようと思います。)
結論!
VBAでいろいろ自動化できるようにする!
あと、記事を書いていない間も、Pythonと機械学習についてはいろいろ勉強していたので
継続していきます。
相も変わらず拙い文章ですいません。
良い記事が書けるように精進していくのでよろしくお願いします。
TensorFlow-GPUをインストールしてみた
環境
windows 10 64bit
GeForce GTX 1050 Ti
CUDA 9.2
CUDNN 7.1
Python 3.6
TensorFlow 1.11
Visual Studio 2017
前提
anaconda入ってる
すでにTensorFlowでいろいろやってた
インストール手順(ざっくりと)
Visual Studio 2017をMicrosoft からダウンロード。exeを起動しインストール
CUDAとCUDNNをNVIDIAからダウンロード
CUDAはそのままexeを起動してインストール
CUDNNを解凍
解凍して出てきたbinフォルダたちをC:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.2 内に上書きコピー
anaconda promptを起動して以下コマンドを実行
activate 仮想環境名 pip uninstall tensorflow conda install tensorflow-gpu
以上で完了。
その後
tennsorflow自体はできているはずなのだが
# kの更新に利用するパラメータ GAMMA = 0.5 LR_K = 0.001 # 繰り返し数。100000〜1000000程度を指定 TOTAL_STEPS = 100 # モデルや確認用の生成画像を保存するディレクトリ MODEL_SAVE_DIR = 'began/models' IMG_SAVE_DIR = 'began/imgs' # 確認用に5x5個の画像を生成する IMG_SAMPLE_SHAPE = (5, 5) N_IMG_SAMPLES = np.prod(IMG_SAMPLE_SHAPE) # 保存先がなければ作成 os.makedirs(MODEL_SAVE_DIR, exist_ok=True) os.makedirs(IMG_SAVE_DIR, exist_ok=True) # サンプル画像用のランダムシード sample_seeds = np.random.uniform( -1, 1, (N_IMG_SAMPLES, z_size) ) history = [] logs = [] for step, batch in enumerate(train_data_generator): # サンプル数がBATCH_SIZEに満たない場合はスキップ # 全体の画像枚数がBATCH_SIZEの倍数出ない場合に発生 if len(batch) < BATCH_SIZE: continue # 学習終了 if step > TOTAL_STEPS: break # ランダムな値を生成 z_g = np.random.uniform( -1, 1, (BATCH_SIZE, z_size) ) z_d = np.random.uniform( -1, 1, (BATCH_SIZE, z_size) ) # 生成画像(discriminatorの学習に利用) g_pred = generator.predict(z_d) # generatorを1ステップ分学習させる generator.train_on_batch(z_g, batch) # discriminatorを1ステップ分学習させる _, real_loss, fake_loss = discriminator_trainer.train_on_batch( [batch, g_pred], [batch, g_pred] ) # k を更新 k_var += LR_K*(GAMMA*real_loss - fake_loss) K.set_value(k, k_var) # g_measure を計算するためにlossを保存 history.append({ 'real_loss': real_loss, 'fake_loss': fake_loss }) # 1000回に1度ログを表示 if step%1000 == 0: # 過去1000回分の measure を平均 measurement = np.mean([ measure( loss['real_loss'], loss['fake_loss'], GAMMA ) for loss in history[-1000:] ]) logs.append({ 'k': K.get_value(k), 'measure': measurement, 'real_loss': real_loss, 'fake_loss': fake_loss }) print(logs[-1]) # 画像を保存 img_path = '{}/generated_{}.png'.format( IMG_SAVE_DIR, step ) save_imgs( img_path, generator.predict(sample_seeds), rows=IMG_SAMPLE_SHAPE[0], cols=IMG_SAMPLE_SHAPE[1] ) # 最新のモデルを保存 generator.save('{}/generator_{}.hd5'.format(MODEL_SAVE_DIR, step)) discriminator.save('{}/discriminator_{}.hd5'.format(MODEL_SAVE_DIR, step))
このサンプルプログラムを実行すると
InternalError: Blas GEMM launch failed : a.shape=(16, 32), b.shape=(32, 4096), m=16, n=4096, k=32 [[{{node dense/MatMul}} = MatMul[T=DT_FLOAT, transpose_a=false, transpose_b=false, _device="/job:localhost/replica:0/task:0/device:GPU:0"](_arg_dense_input_0_0/_143, dense/MatMul/ReadVariableOp)]] [[{{node conv2d_8/BiasAdd/_145}} = _Recv[client_terminated=false, recv_device="/job:localhost/replica:0/task:0/device:CPU:0", send_device="/job:localhost/replica:0/task:0/device:GPU:0", send_device_incarnation=1, tensor_name="edge_158_conv2d_8/BiasAdd", tensor_type=DT_FLOAT, _device="/job:localhost/replica:0/task:0/device:CPU:0"]()]]
エラーが起きてしまう。
ほかのプログラムを試してみても
Blas GEMM launch failed
というエラーが起きる。
今日は目が疲れたので明日続きをやろうと思う。
今日のまとめ
Tensorflow-GPUの使い方が分からねぇぇぇぇぇぇ (ゲームならGPU簡単に設定されるけど、プログラムにどうやって適応すればええの?)