« 2022年08月 | メイン | 2022年11月 »

2022年10月30日

環境準備

環境ぶっ壊して元通りにするとき用のメモ

python インストール(今は3.9系)
非公式だけどここが見やすいとのこと
https://pythonlinks.python.jp/ja/index.html

今回は python-3.9.13-amd64.exe 

インストールしてPATH通し
C:\Users\UserName\AppData\Local\Programs\Python\Python39
C:\Users\UserName\AppData\Local\Programs\Python\Python39\Scripts

必要なライブラリインストール
pip install numpy
pip install psutil
#dlibインストールに必要
pip install wheel
pip install CMake

#pip install dlib たとCUDAが有効になっていてexe時にファイルサイズ大きすぎた
pip install -v --install-option="--no" --install-option="DLIB_USE_CUDA" dlib


pip install opencv-python
pip install pip natsort
pip install pyzbar

#kivy関連 https://kivy.org/doc/stable/gettingstarted/installation.html
python -m pip install --upgrade pip setuptools virtualenv
python -m pip install "kivy[base]"

#pyinstaller
pip install pyinstaller

#tflite

bazelインストール
https://github.com/bazelbuild/bazel

右のlatestから(今回は5.3.2) exeで該当するものをダウンロード
どこかに置いてpath通す

https://www.tensorflow.org/install/source_windows?hl=ja
pip install six numpy wheel
pip install keras_applications==1.0.6 --no-deps
pip install keras_preprocessing==1.0.5 --no-deps

pacman -S git patch unzip

#**************多分ここいらないかも*********
python ./configure.py
TensorFlow with ROCm support N
TensorFlow with CUDA support N
#***********************
tensorflow\lite\tools\pip_package

後で ./build_pip_package_with_bazel.sh: line 125: python3: command not found
と怒られるので python.exeを python3.exeにコピー

git bash hereで
./build_pip_package_with_bazel.sh windows

+ exit 0
で正常終了

W:\tensorflow\tensorflow\lite\tools\pip_package\gen\tflite_pip\python3\dist
に tflite_runtime-2.12.0-cp39-cp39-win_amd64.whl
これをインストール pip install tflite_runtime-2.12.0-cp39-cp39-win_amd64.whl


----------------------
tf-bodypixをtfliteで使いたい

pip install tf-bodypix[tflite]

投稿者 muuming : 05:01

2022年10月27日

写真のソート

写真を撮影時刻順に並べる

pip install image-sorting-tool
image-sorting-tool

投稿者 muuming : 12:37 | コメント (0)

2022年10月15日

tensorflow GPU複数使い

シーケンシャルモデルの作成とコンパイルをMirroredStrategyの中に入れる

mirrored_strategy = tf.distribute.MirroredStrategy()
with mirrored_strategy.scope():
model = tf.keras.Sequential([tf.keras.layers.Dense(1, input_shape=(1,))])
model.compile(loss='mse', optimizer='sgd')

model.fitはMirrored Strategyに入れない




◆Subclassing APの場合Iは???
  ネット探しても出てこないなぁ。

投稿者 muuming : 06:27

tensorflow 3つの方法

Sequential APIによるモデルの構築
Functional APIによるモデル構築
Subclassing API(Model Subclassing)によるモデル構築


◆Sequential APIによるモデルの構築 Sequentialというのは「線形の」 → 縦にならんだ・層を積み重ねただけのモデルだけ作れる


import tensorflow as tf

mnist = tf.keras.datasets.mnist

(x_train, y_train), (x_test, y_test) = mnist.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0


model = tf.keras.models.Sequential([
tf.keras.layers.Flatten(input_shape=(28, 28)),
tf.keras.layers.Dense(128, activation='relu'),
tf.keras.layers.Dropout(0.2),
tf.keras.layers.Dense(10)
])

loss_fn = tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True)

model.compile(optimizer='adam',
loss=loss_fn,
metrics=['accuracy'])


model.fit(x_train, y_train, epochs=5)
model.evaluate(x_test, y_test, verbose=2)

--------------
model = Sequential()
model.add(Conv2D(32, (3, 3), activation='relu', input_shape=(32,32,3)))
といった書き方も可能


◆Functional APIによるモデル構築
# Functional APIでモデルを定義します。
inputs = tf.keras.layers.Input(shape=(28, 28), name='inputs')
flatten = tf.keras.layers.Flatten(name='flatten')(inputs)
hidden1 = tf.keras.layers.Dense(128, activation='relu', name='relu1')(flatten)
hidden2 = tf.keras.layers.Dense(128, activation='relu', name='relu2')(hidden1)
concat = tf.keras.layers.Concatenate(name='concat')([hidden1, hidden2])
outputs = tf.keras.layers.Dense(10, activation='softmax', name='softmax')(concat)

# 入出力を定義します。
model = tf.keras.models.Model(inputs=inputs, outputs=outputs, name='functional')

#ここから先はSequential APIと同じ
model.compile(optimizer="sgd", loss="categorical_crossentropy", metrics=["accuracy"])
model.fit(x = x_train, y = y_train, epochs=50, batch_size=128)
model.evaluate(x = x_test, y = y_test, verbose=2)




◆Subclassing APIはいつも使ってるので、省略

投稿者 muuming : 05:54 | コメント (0)

2022年10月13日

cgpのRocky Linux8 でtensorflow

sudo dnf install epel-release

sudo dnf config-manager --add-repo https://developer.download.nvidia.com/compute/cuda/repos/rhel8/x86_64/cuda-rhel8.repo

sudo dnf install kernel-devel-$(uname -r) kernel-headers-$(uname -r)

sudo dnf install nvidia-driver nvidia-settings -y
sudo dnf install cuda-driver -y
reboot
nvidia-smi
でGPUの出るかな。

※全削除は
sudo dnf remove nvidia-driver nvidia-settings cuda-driver kernel-devel-$(uname -r) kernel-headers-$(uname -r)

投稿者 muuming : 15:08

2022年10月11日

vmwareが重い

vmwareが重い 重すぎる 使い物にならん

サイドチャンネルのうんたらかんたら言われた時は 
vmxファイルを追記

ulm.disableMitigations="TRUE"

セキュリティ的には落ちるだろうが、動かなかったら話にならんし・・・

投稿者 muuming : 12:33

2022年10月06日

ワードプレスのデータベース構造

 wp_posts
 
 CREATE TABLE `wp_posts` (
  `ID` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `post_author` bigint(20) unsigned NOT NULL DEFAULT '0',
  `post_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `post_date_gmt` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `post_content` longtext COLLATE utf8mb4_unicode_520_ci NOT NULL,
  `post_title` text COLLATE utf8mb4_unicode_520_ci NOT NULL,
  `post_excerpt` text COLLATE utf8mb4_unicode_520_ci NOT NULL,
  `post_status` varchar(20) COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT 'publish',
  `comment_status` varchar(20) COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT 'open',
  `ping_status` varchar(20) COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT 'open',
  `post_password` varchar(255) COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT '',
  `post_name` varchar(200) COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT '',
  `to_ping` text COLLATE utf8mb4_unicode_520_ci NOT NULL,
  `pinged` text COLLATE utf8mb4_unicode_520_ci NOT NULL,
  `post_modified` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `post_modified_gmt` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `post_content_filtered` longtext COLLATE utf8mb4_unicode_520_ci NOT NULL,
  `post_parent` bigint(20) unsigned NOT NULL DEFAULT '0',
  `guid` varchar(255) COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT '',
  `menu_order` int(11) NOT NULL DEFAULT '0',
  `post_type` varchar(20) COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT 'post',
  `post_mime_type` varchar(100) COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT '',
  `comment_count` bigint(20) NOT NULL DEFAULT '0',
  PRIMARY KEY (`ID`),
  KEY `post_name` (`post_name`(191)),
  KEY `type_status_date` (`post_type`,`post_status`,`post_date`,`ID`),
  KEY `post_parent` (`post_parent`),
  KEY `post_author` (`post_author`)
) ENGINE=InnoDB AUTO_INCREMENT=74 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci |

wp_postmeta

CREATE TABLE `wp_postmeta` (
`meta_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`post_id` bigint(20) unsigned NOT NULL DEFAULT '0',
`meta_key` varchar(255) COLLATE utf8mb4_unicode_520_ci DEFAULT NULL,
`meta_value` longtext COLLATE utf8mb4_unicode_520_ci,
PRIMARY KEY (`meta_id`),
KEY `post_id` (`post_id`),
KEY `meta_key` (`meta_key`(191))
) ENGINE=InnoDB AUTO_INCREMENT=80 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci |

記事本体(wp_posts)
post_status → 公開(publish) 下書き(draft) ゴミ箱(trash)
post_date → 登録日
post_type → 投稿タイプ post とか

投稿者 muuming : 12:16