・内容:すごくいいバックです。
・サイズ:いい感じのサイズです。
・色 :ピンク ブルー パープルの三色です。
・材質:めっちゃ頑丈です。
流行の科学技術を勝手に追いかけるブログ 人工知能 仮想現実 ブロックチェーン
東洋インタレスト出版
・内容:すごくいいバックです。
・サイズ:いい感じのサイズです。
・色 :ピンク ブルー パープルの三色です。
・材質:めっちゃ頑丈です。
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8" /> <link rel="stylesheet" href="https://pyscript.net/alpha/pyscript.css" /> <script defer src="https://pyscript.net/alpha/pyscript.js"></script> <py-env> - numpy </py-env> </head> <body> <h1>pyscript demo</h1> <py-script> import numpy as np print('すごいことになっている') print('すごいことになっている') a = 100+20 print(a) print(np.random.randn()) </py-script> </body> </html> |
使い方例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
#from distutils.debug import DEBUG #from distutils.log import ERROR, from logging import getLogger, FileHandler, StreamHandler from logging import Formatter from logging import DEBUG, INFO, WARNING, ERROR, CRITICAL # ロガー フォーマッターのオブジェクトを作成する logger = getLogger(__name__) # ログの出力を命令するオブジェクト formatter = Formatter('[%(levelname)s] %(asctime)s - %(message)s (%(filename)s)') # ハンドラーのオブジェクトを作成する #handler = StreamHandler() # どうやってログの出力をするか操作するオブジェクト、出力実行部分、Pythonの標準出力 handler = FileHandler('log_all.txt') # ファイルにロギングする handler.setLevel(DEBUG) # ログのレベルの設定 デバッグモード handler.setFormatter(formatter) # フォーマッターをハンドラーにセットする error_handler = FileHandler('log_error.txt') # ファイルにロギングする error_handler.setLevel(ERROR) # ログのレベルの設定 エラーモード error_handler.setFormatter(formatter) # フォーマッターをエラーハンドラーに設置する # ロガーのログのレベルの設定 デバッグモード logger.setLevel(DEBUG) # ロガーにハンドラーを追加 logger.addHandler(handler) logger.addHandler(error_handler) logger.debug('ここはデバッグログが入る') logger.info('ここにインフォログが入る') logger.warning('ここにワーニングログが入る') logger.error('ここにエラーログが入る') #logger.critical('ここにクリティカルログが入る') """ ログレベル 1.DEBUG -> debug() :開発中 動きが正しいかの確認 一番低いレベルなので、すべてのログが出力される 2.INFO -> info() :正常な動きをしている情報 3.WARNING -> warning() :想定外のこと、問題が起きるかもしれないという警告 4.ERROR -> error() :問題が起きた 5.CRITICAL -> critivcal() :とても重大な問題が発生 logger.error('XXXXX) -> ログレベルがエラー以上のとき出力されるメッセージ """ """ハンドラーを2つ作ってみる """ |
です。
キーワード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
import PySimpleGUI as sg # レイアウト定義 layout = [ [sg.Text('テキスト')] ] # ウィンドウのインスタンスを生成 window = sg.Window('タイトル', layout) # 表示ループ while True: # ウィンドウを表示 および イベントとバリューの取得 event, values = window.read() # ウィンドウ右上の閉じるボタンを押したとき if event == None: break # ウィンドウを閉じる window.close() |
キーワード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
import PySimpleGUI as sg # レイアウト定義 layout = [ [sg.Text('テキスト1'), sg.Text('テキスト2'), sg.Text('テキスト3')], [sg.Text('テキスト4', size=(20, 1), font=('Meiryo UI', 18))], [sg.Input(default_text='インプット デフォルトテキスト')], [sg.Multiline(default_text='マルチライン デフォルトテキスト')], ] # ウィンドウのインスタンスを生成 window = sg.Window('タイトル', layout) # 表示ループ while True: # ウィンドウを表示 および イベントとバリューの取得 event, values = window.read() # ウィンドウ右上の閉じるボタンを押したときループから抜ける if event == None: break # ウィンドウを閉じる window.close() |
キーワード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
import PySimpleGUI as sg # レイアウト定義 layout = [ [sg.Text('テキスト1'), sg.Text('テキスト2'), sg.Text('テキスト3')], [sg.Text('テキスト4', size=(20, 1), font=('Meiryo UI', 18))], [sg.Input(default_text='インプット デフォルトテキスト')], [sg.Multiline(default_text='マルチライン デフォルトテキスト')], [sg.Button('ボタン1', key='button1')], [sg.Button(image_filename='sample.png',image_size=(80,80))] ] # ウィンドウのインスタンスを生成 window = sg.Window('タイトル', layout) # 表示ループ while True: # ウィンドウを表示 および イベントとバリューの取得 event, values = window.read() # ウィンドウ右上の閉じるボタンを押したときループから抜ける if event == None: break if event == 'button1': result = sg.PopupYesNo('処理を行いますか?') if result == 'Yes': sg.Popup('処理が完了しました。') else: pass # ウィンドウを閉じる window.close() |
キーワード
注意:インプットは文字列になるので、計算するときはint,floatで数値に変換してからやること。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
import PySimpleGUI as sg # レイアウト定義 layout = [ [sg.Text('2つの数字を足し算します')], [sg.Input(default_text='3',key='input1'), sg.Input(default_text='5',key='input2')], [sg.Button('計算する', key='culc_button')], [sg.Output()] ] # ウィンドウのインスタンスを生成 window = sg.Window('タイトル', layout) # 表示ループ while True: # ウィンドウを表示 および イベントとバリューの取得 event, values = window.read() # ウィンドウ右上の閉じるボタンを押したときループから抜ける if event == None: break if event == 'culc_button': summation = int(values['input1']) + int(values['input2']) print(summation) # ウィンドウを閉じる window.close() |
キーワード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
import PySimpleGUI as sg # レイアウト定義 layout = [ [sg.Text('足し算します')], [sg.Checkbox('入力1',key='checkbox1',default=True), sg.Input(default_text='3',key='input1')], [sg.Checkbox('入力2',key='checkbox2',default=True), sg.Input(default_text='5',key='input2')], [sg.Checkbox('入力3',key='checkbox3',default=True), sg.Input(default_text='7',key='input3')], [sg.Button('計算する', key='culc_button')], [sg.Output()] ] # ウィンドウのインスタンスを生成 window = sg.Window('タイトル', layout) # 表示ループ while True: # ウィンドウを表示 および イベントとバリューの取得 event, values = window.read() # ウィンドウ右上の閉じるボタンを押したときループから抜ける if event == None: break if event == 'culc_button': i1 = int(values['input1']) i2 = int(values['input2']) i3 = int(values['input3']) summation = 0 # 初期化 if values['checkbox1'] == True: summation += i1 if values['checkbox2'] == True: summation += i2 if values['checkbox3'] == True: summation += i3 print(summation) # ウィンドウを閉じる window.close() |
キーワード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
import PySimpleGUI as sg # レイアウト定義 layout = [ [sg.Text('足し算 か 掛け算か を選択してください。')], [sg.Radio('足し算',key='radio_add', group_id='radio1',default=True), sg.Radio('掛け算', key='radio_multiply',group_id='radio1')], [sg.Checkbox('入力1',key='checkbox1',default=True), sg.Input(default_text='3',key='input1')], [sg.Checkbox('入力2',key='checkbox2',default=True), sg.Input(default_text='5',key='input2')], [sg.Checkbox('入力3',key='checkbox3',default=True), sg.Input(default_text='7',key='input3')], [sg.Button('計算する', key='culc_button')], [sg.Output()] ] # ウィンドウのインスタンスを生成 window = sg.Window('タイトル', layout) # 表示ループ while True: # ウィンドウを表示 および イベントとバリューの取得 event, values = window.read() # ウィンドウ右上の閉じるボタンを押したときループから抜ける if event == None: break if event == 'culc_button': i1 = int(values['input1']) i2 = int(values['input2']) i3 = int(values['input3']) summation = 0 # 初期化 multiple = 1 #初期化 if values['radio_add'] == True: if values['checkbox1'] == True: summation += i1 if values['checkbox2'] == True: summation += i2 if values['checkbox3'] == True: summation += i3 print(summation) if values['radio_multiply'] == True: if values['checkbox1'] == True: multiple *= i1 if values['checkbox2'] == True: multiple *= i2 if values['checkbox3'] == True: multiple *= i3 print(multiple) # ウィンドウを閉じる window.close() |
fast.comで調べてみると 90Mbpsくらいしか出ていない。
おそらくそれ、設定がおかしいです。
コントロールパネル>ネットワークとインターネット>ネットワーク接続
の中にイーサネットアイコンがあるので開いてみましょう。
イーサネットの状態>全般>接続 が速度=100Mbpsになっていませんか?
イーサネットの状態>全般>動作状況>プロパティ を開きましょう
ネットワーク>接続の方法>構成 をおして
詳細設定>プロパティ>速度とデュプレックス>値
が「オートデュプレックス」とか「100Mbps全二重通信」になっていたら、これがおかしいのです。
1.0Gbps全二重通信に変更しましょう。
これでOKです。
もういっかいfast.comで速度を確認してみてください。数百Mbpsに跳ね上がっているはずです。
もし、それでもだめな場合は、同じプロパティの中の省電力関係の項目をオフにしてみてください。
以上
FFTです
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
import matplotlib.pyplot as plt from scipy.fftpack import fft import numpy as np from math import pi # 波形データ作成 Fs = 1000 # 分割数 t = np.arange(0, 1, 1 / Fs) # 0から1までをFs分割 # 周波数を定義 f1 = 10 f2 = 100 f3 = 300 # 波合成 x = 1.0* np.sin(2 * pi * f1 * t) x += 2.0 * np.sin( 2 * pi * f2 * t) x += 3.0 * np.sin( 2 * pi * f3 * t) # 波形表示 plt.figure(figsize=(10, 10)) plt.subplot(2, 1, 1) plt.plot(t, x) plt.title('Wave Signal'); plt.xlabel('Time t/s') plt.ylabel('Amplitude') plt.grid('on') # generate frequency axis n = np.size(t) fr = (Fs / 2) * np.linspace(0, 1, int(n / 2)) # int必要 # FFT X = fft(x) X_m = (2 / n) * abs(X[0 : np.size(fr)]) # FFT可視化 plt.subplot(2, 1, 2) plt.plot(fr,X_m); plt.title('Magnitude Spectrum') plt.xlabel('Frequency(Hz)'); plt.ylabel('Magnitude') plt.tight_layout() plt.grid('on') plt.show() |
はい 以上
最新のpythonをインストールします。3.10ですね。
https://www.python.org/downloads/release/python-3100/
開発用のフォルダを新規作成します。ここではproject_aとしましょう。
project_aに移動して、
$pip isntall pipenv
$pipenv shell
するとproject_aの中に仮想環境が出来上がっていてさPipfileというファイルが一つ出来上がっています。
$pip listすると最低限のものしかないので、モジュールを入れてみます。
pip ではなくてpipenvなので注意です。
$pipenv install django
開発のときだけ仕様するモジュールは –devを入れます
$pipenv install –dev flake8 autopep8
すると Pipfileファイルは下記のようになります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
[[source]] url = "https://pypi.org/simple" verify_ssl = true name = "pypi" [packages] django = "*" [dev-packages] flake8 = "*" autopep8 = "*" [requires] python_version = "3.10" |
djangoのプロジェクトを立ち上げましょう
https://docs.djangoproject.com/ja/3.2/intro/tutorial01/ には
$ django-admin startproject mysite
と書いてありますが、
$django-admin startproject config .
と、今後コンフィグに関するフォルダ、例えばsettings.pyの場所がわかりやすくなります。
今後、configのほかにusersとかフォルダが増えていきます。
ランサーバーして動くかどうか見てみましょう
$python manage.py runserver
1 2 3 4 5 6 7 8 9 10 11 |
Watching for file changes with StatReloader Performing system checks... System check identified no issues (0 silenced). You have 18 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions. Run 'python manage.py migrate' to apply them. October 09, 2021 - 17:13:14 Django version 3.2.8, using settings 'config.settings' Starting development server at http://127.0.0.1:8000/ Quit the server with CTRL-BREAK.な |
なんか警告出ていますが無視。
chromeからhttp://127.0.0.1:8000/でdjangoの初期画面(ロケットが飛んでいるやつ)が表示されたらOKです。
終わるときはCTRL-BREAK と書いていますが。
ctrl+c でした。(windows10)
この記事は下記の動画を参考にさせていただきました。ありがとうございます。
index.html
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta1/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-giJF6kkoqNQ00vy+HMDP7azOuL0xtbfIcaT9wjKHr8RbDVddVHyTfAAsrekwKmP1" crossorigin="anonymous"> <title>Document</title> </head> <body class="bg-light"> <div class="container w-75"> <h1 class="text-center text-info my-4">TODO</h1> <h2 id="dinner">今日のディナーは</h2> <form id="form" class="mb-4"> <input type="text" id="input" class="form-control" placeholder="今日の気分は" autocomplete="off"> </form> </div> <script src="index.js"></script> </body> </html> |
index.js
1 2 3 4 5 6 |
console.log("今日のディナーは"); document.getElementById("dinner").addEventListener("click", function() { document.getElementById("dinner").textContent = "かつどん" confirm("aaa") confirm("bbb") }); |
anacondaをインストールしておきます。
anaconda promptで
$conda create -n kaso-kankyo python=3.8
ここでyを押して続行。
仮想環境が出来上がっているか確認する
$conda env list
仮想環境をアクティベートする
$conda activate kaso-kankyo
$pip list でモジュールを調べてみると
1 2 3 4 5 6 7 8 9 10 |
Package Version ------------ --------- certifi 2021.5.30 matplotlib 3.4.3 numpy 1.21.2 pandas 1.3.3 pip 21.2.4 setuptools 58.0.4 wheel 0.37.0 wincertstore 0.2 |
で、最小構成だった。pip numpy pandas matplotlibが入っている。
抜けるときは
$conda deactivate
でOK
仮想環境を削除するときは
$conda remove -n kaso-kankyo –all
でOK.
試しに、flaskをインストールしてみると
$conda install flask
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
Package Version ------------------ --------- certifi 2021.5.30 click 8.0.1 Flask 2.0.1 importlib-metadata 4.8.1 itsdangerous 2.0.1 Jinja2 3.0.1 MarkupSafe 2.0.1 matplotlib 3.4.3 numpy 1.21.2 pandas 1.3.3 pip 21.2.4 setuptools 58.0.4 Werkzeug 2.0.1 wheel 0.37.0 wincertstore 0.2 zipp 3.5.0 |
jinda2 が自動的にインストールされる。
ディープラーニングのライブラリを入れてみる
$conda install pytorch
ついでに行っておくと、インポートするときはimport torchになるので注意。pyはいらない。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
The following NEW packages will be INSTALLED: _pytorch_select pkgs/main/win-64::_pytorch_select-0.1-cpu_0 blas pkgs/main/win-64::blas-1.0-mkl cffi pkgs/main/win-64::cffi-1.14.6-py38h2bbff1b_0 intel-openmp pkgs/main/win-64::intel-openmp-2019.4-245 libmklml pkgs/main/win-64::libmklml-2019.0.5-haa95532_0 mkl pkgs/main/win-64::mkl-2019.4-245 mkl-service pkgs/main/win-64::mkl-service-2.3.0-py38h196d8e1_0 mkl_fft pkgs/main/win-64::mkl_fft-1.3.0-py38h46781fe_0 mkl_random pkgs/main/win-64::mkl_random-1.1.0-py38hf9181ef_0 ninja pkgs/main/win-64::ninja-1.10.2-h6d14046_1 numpy pkgs/main/win-64::numpy-1.19.2-py38hadc3359_0 numpy-base pkgs/main/win-64::numpy-base-1.19.2-py38ha3acd2a_0 pycparser pkgs/main/noarch::pycparser-2.20-py_2 pytorch pkgs/main/win-64::pytorch-1.6.0-cpu_py38h538a6d7_0 six pkgs/main/noarch::six-1.16.0-pyhd3eb1b0_0 |
色々ついでにはいってきたがtorchvisionは入っていない
$conda install torchvision では入らない
$conda isntall pytorch torchvision -c pytorch
とすると入る。なぜ?結構時間がかかるので慌てて強制終了しないこと。3分位だったかな。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
Package Version ------------------ --------- certifi 2021.5.30 cffi 1.14.6 click 8.0.1 Flask 2.0.1 importlib-metadata 4.8.1 itsdangerous 2.0.1 Jinja2 3.0.1 MarkupSafe 2.0.1 matplotlib 3.4.3 mkl-fft 1.3.0 mkl-random 1.1.0 mkl-service 2.3.0 numpy 1.21.2 olefile 0.46 pandas 1.3.3 Pillow 8.3.1 pip 21.2.4 pycparser 2.20 setuptools 58.0.4 six 1.16.0 torch 1.8.1 torchvision 0.9.1 typing-extensions 3.10.0.2 Werkzeug 2.0.1 wheel 0.37.0 wincertstore 0.2 zipp 3.5.0 |
だいぶいろんなものが入ってきた。
次は画像処理系行きましょう。
$conda install opencv
1 2 3 4 5 6 7 |
package | build ---------------------------|----------------- libopencv-4.0.1 | hbb9e17c_0 28.6 MB opencv-4.0.1 | py38h2a7c758_0 22 KB py-opencv-4.0.1 | py38he44ac1e_0 1.5 MB ------------------------------------------------------------ Total: 30.1 MB |
なんとopencvバージョンが4までいってました。
で、Jupyternotebookを使うとき、どうやってこの環境でやっていくのでしょうか。