{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[ 1, 2, 3, 7, 8, 9, 10]])" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import numpy as np\n", "\n", "state = np.array([[1, 2, 3], [1, 2, 3]])\n", "aaa = np.array([[123]])\n", "\n", "state[:, -1]\n", "\n", "np.append([[1, 2, 3]], [[7, 8, 9, 10]], axis=1)\n" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "import tensorflow as tf\n", "import numpy as np\n", "\n", "aa = tf.constant([[1, 2, 3], [1, 2, 3], [1, 2, 3], [1, 2, 3]])\n", "bb = tf.constant([1, 2, 3, 4])\n", "\n", "print(tf.expand_dims(bb, axis=1))\n", "\n", "cc = tf.math.multiply(aa, tf.expand_dims(bb, axis=1))\n", "\n", "print(cc)\n", "print(tf.shape(aa))\n", "\n", "print(aa[:, 2:3])\n", "\n", "aa = tf.constant([1.0, 2.0, 3.0, np.nan])\n", "print(np.any(tf.math.is_nan(aa)))\n", "if np.any(tf.math.is_nan(aa)):\n", " print(\"true\")\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "import tensorflow as tf\n", "\n", "prob = tf.constant([0.3, 0.3, 0.0])\n", "\n", "entropy = tf.reduce_mean(\n", " tf.math.negative(tf.math.multiply(prob, tf.math.log(prob)))\n", ")\n", "\n", "print(entropy)\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "int 23\n", "str twenty three\n", "bool True\n", "error\n" ] } ], "source": [ "from functools import singledispatchmethod\n", "\n", "\n", "class person:\n", " @singledispatchmethod\n", " def age(self, arg):\n", " print(\"error\")\n", "\n", " @age.register(int)\n", " def _(self, arg: int):\n", " print(\"int\", arg)\n", "\n", " @age.register(str)\n", " def _(self, arg: str):\n", " print(\"str\", arg)\n", "\n", " @age.register(bool)\n", " def _(self, arg: bool):\n", " print(\"bool\", arg)\n", "\n", "\n", "p = person()\n", "p.age(23) # int\n", "p.age(\"twenty three\") # str\n", "p.age(True) # bool\n", "p.age([\"23\"]) # list\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "import tensorflow as tf\n", "import tensorflow.keras.layers as layers\n", "\n", "\n", "def conv_bn_relu(inputs, chs, reps):\n", " x = inputs\n", " for i in range(reps):\n", " x = layers.Conv2D(chs, 3, padding=\"same\")(x)\n", " x = layers.BatchNormalization()(x)\n", " x = layers.ReLU()(x)\n", " return x\n", "\n", "\n", "def create_model():\n", " inputs = layers.Input((32, 32, 3))\n", " x = conv_bn_relu(inputs, 64, 3)\n", " x = layers.AveragePooling2D(2)(x)\n", " x = conv_bn_relu(x, 128, 3)\n", " x = layers.AveragePooling2D(2)(x)\n", " x = conv_bn_relu(x, 256, 3)\n", " x = layers.GlobalAveragePooling2D()(x)\n", " x = layers.Dense(10, activation=\"softmax\")(x)\n", " return tf.keras.models.Model(inputs, x)\n", "\n", "\n", "def perprocess(img, label):\n", " img = tf.cast(img, tf.float32) / 255.0\n", " label = tf.cast(label, tf.float32)\n", " return img, label\n", "\n", "\n", "def train():\n", " (X_train, y_train), (\n", " X_test,\n", " y_test,\n", " ) = tf.keras.datasets.cifar10.load_data()\n", " trainset = (\n", " tf.data.Dataset.from_tensor_slices((X_train, y_train))\n", " .map(perprocess)\n", " .shuffle(4096)\n", " .batch(128)\n", " .repeat()\n", " .prefetch(50)\n", " )\n", "\n", " model = create_model()\n", " model.compile(\"adam\", \"sparse_categorical_crossentropy\", [\"acc\"])\n", "\n", " model.fit(trainset, steps_per_epoch=50000 // 128, epochs=1)\n", " # 'Adam/conv2d/kernel/m:0' shape=(3, 3, 3, 64)\n", " print(model.optimizer.weights[1][0, 0, 0, :10])\n", " # <tf.Variable 'conv2d/kernel:0' shape=(3, 3, 3, 64)\n", " print(model.weights[0][0, 0, 0, :10])\n", "\n", " model.save_weights(\"model_tf.ckpt\", save_format=\"tf\") # デフォルト\n", " model.save_weights(\"model_h5.h5\", save_format=\"h5\")\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "390/390 [==============================] - 28s 59ms/step - loss: 1.2548 - acc: 0.5441\n", "tf.Tensor(\n", "[ 0.00190057 -0.00765918 0.00163367 0.00782851 0.02600338 0.00516749\n", " -0.00424899 0.01562062 -0.0022073 -0.00355565], shape=(10,), dtype=float32)\n", "tf.Tensor(\n", "[ 0.07978954 -0.04595745 -0.03745254 -0.03701654 0.03296526 -0.11328737\n", " -0.10719797 0.00874998 0.0226855 0.02288487], shape=(10,), dtype=float32)\n" ] } ], "source": [ "train()\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "tf.Tensor(\n", "[ 0.07978954 -0.04595745 -0.03745254 -0.03701654 0.03296526 -0.11328737\n", " -0.10719797 0.00874998 0.0226855 0.02288487], shape=(10,), dtype=float32)\n", "tf.Tensor(\n", "[ 0.00190057 -0.00765918 0.00163367 0.00782851 0.02600338 0.00516749\n", " -0.00424899 0.01562062 -0.0022073 -0.00355565], shape=(10,), dtype=float32)\n" ] } ], "source": [ "def load_tf_w_zero_grad():\n", " model = create_model()\n", " model.compile(\"adam\", \"sparse_categorical_crossentropy\", [\"acc\"])\n", "\n", " zero_grad = [tf.zeros_like(x) for x in model.weights]\n", " model.optimizer.apply_gradients(zip(zero_grad, model.weights))\n", "\n", " model.load_weights(\"model_tf.ckpt\")\n", " # これでようやくオプティマイザーの値も同一になる\n", " print(model.weights[0][0, 0, 0, :10])\n", " print(model.optimizer.weights[1][0, 0, 0, :10])\n", "\n", "\n", "load_tf_w_zero_grad()\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[0.]])" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import numpy as np\n", "\n", "a = np.array([10, 20, 30, 0])\n", "\n", "np.asarray([[0.]])\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "1.5" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import numpy as np\n", "\n", "asd = [1,2,3,np.array([0.5]),np.array([0.5])]\n", "\n", "asd[3:]\n", "len(asd)\n", "\n", "np.mean([1,2])" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0.0\n", "0.0\n" ] } ], "source": [ "import time\n", "import pyautogui as pag\n", "\n", "from pynput.mouse import Button, Controller\n", "\n", "w = pag.size().width\n", "h = pag.size().height\n", "mouse = Controller()\n", "\n", "nowt = time.time()\n", "\n", "middletime = time.time() - nowt\n", "print(middletime)\n", "# print(nowPos-(w/2))\n", "\n", "print(time.time() - middletime - nowt)\n", "while True:\n", " x,_ = mouse.position\n", " #print(mouse.press)\n", " #print(mouse.position)\n", " \n", " mouse.position = (w / 2, h / 2)\n", " time.sleep(1/60)\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "import time\n", "import pyautogui as pag\n", "\n", "import mouse\n", "\n", "w = pag.size().width\n", "h = pag.size().height\n", "\n", "nowt = time.time()\n", "\n", "middletime = time.time() - nowt\n", "print(middletime)\n", "# print(nowPos-(w/2))\n", "\n", "print(time.time() - middletime - nowt)\n", "while True:\n", " x = mouse.get_position()\n", " print(x)\n", " #print(mouse.position)\n", " \n", " mouse.move(w / 2, h / 2)\n", " time.sleep(1/60)\n" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "3\n", "deque([[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1, 1, 1, 1, 1]], maxlen=3)\n", "3\n", "deque([[0.0, 0.0, 0.0, 0.0, 0.0], [1, 1, 1, 1, 1], [2, 2, 2, 2, 2]], maxlen=3)\n", "3\n", "deque([[1, 1, 1, 1, 1], [2, 2, 2, 2, 2], [3, 3, 3, 3, 3]], maxlen=3)\n", "3\n", "deque([[2, 2, 2, 2, 2], [3, 3, 3, 3, 3], [4, 4, 4, 4, 4]], maxlen=3)\n", "3\n", "deque([[3, 3, 3, 3, 3], [4, 4, 4, 4, 4], [5, 5, 5, 5, 5]], maxlen=3)\n", "3\n", "deque([[4, 4, 4, 4, 4], [5, 5, 5, 5, 5], [6, 6, 6, 6, 6]], maxlen=3)\n", "3\n", "deque([[5, 5, 5, 5, 5], [6, 6, 6, 6, 6], [7, 7, 7, 7, 7]], maxlen=3)\n", "3\n", "deque([[6, 6, 6, 6, 6], [7, 7, 7, 7, 7], [8, 8, 8, 8, 8]], maxlen=3)\n", "3\n", "deque([[7, 7, 7, 7, 7], [8, 8, 8, 8, 8], [9, 9, 9, 9, 9]], maxlen=3)\n" ] } ], "source": [ "from collections import deque\n", "import numpy as np\n", "\n", "maxBuffer = 3\n", "stateSize = 5\n", "\n", "aa = deque([[0.0]*stateSize],maxlen=maxBuffer)\n", "\n", "def ss(s):\n", " aa.append(s)\n", " if len(aa) < maxBuffer:\n", " for i in range(maxBuffer - len(aa)):\n", " aa.appendleft([0.0] * stateSize)\n", "\n", "for i in range(1,10):\n", " ss([i,i,i,i,i])\n", " print(len(aa))\n", " print(aa)\n", "'''\n", "3\n", "deque([[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [1, 1, 1, 1, 1]], maxlen=3)\n", "3\n", "deque([[0.0, 0.0, 0.0, 0.0, 0.0], [1, 1, 1, 1, 1], [2, 2, 2, 2, 2]], maxlen=3)\n", "3\n", "deque([[1, 1, 1, 1, 1], [2, 2, 2, 2, 2], [3, 3, 3, 3, 3]], maxlen=3)\n", "3\n", "deque([[2, 2, 2, 2, 2], [3, 3, 3, 3, 3], [4, 4, 4, 4, 4]], maxlen=3)\n", "3\n", "deque([[3, 3, 3, 3, 3], [4, 4, 4, 4, 4], [5, 5, 5, 5, 5]], maxlen=3)\n", "3\n", "deque([[4, 4, 4, 4, 4], [5, 5, 5, 5, 5], [6, 6, 6, 6, 6]], maxlen=3)\n", "3\n", "deque([[5, 5, 5, 5, 5], [6, 6, 6, 6, 6], [7, 7, 7, 7, 7]], maxlen=3)\n", "3\n", "deque([[6, 6, 6, 6, 6], [7, 7, 7, 7, 7], [8, 8, 8, 8, 8]], maxlen=3)\n", "3\n", "deque([[7, 7, 7, 7, 7], [8, 8, 8, 8, 8], [9, 9, 9, 9, 9]], maxlen=3)'''" ] }, { "cell_type": "code", "execution_count": 54, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([0, 1, 2, 0, 1, 2, 0, 1, 2])" ] }, "execution_count": 54, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from collections import deque\n", "import numpy as np\n", "\n", "aa = np.array([range(0,3)]*5)\n", "np.reshape(aa[[0,1,2]],(9))" ] }, { "cell_type": "code", "execution_count": 58, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "<class 'int'>\n", "<class 'float'>\n", "<class 'list'>\n", "300\n", "256.1\n", "[300, 256.1]\n", "300\n", "256.1\n" ] } ], "source": [ "# 変数を設定\n", "ringo_int = 300\n", "ringo_float = 256.1\n", "ringo_list = [ringo_int, ringo_float]\n", "\n", "# 型を確認\n", "print(type(ringo_int))\n", "print(type(ringo_float))\n", "print(type(ringo_list))\n", "\n", "# 値を表示\n", "print(ringo_int)\n", "print(ringo_float)\n", "print(ringo_list)\n", "\n", "# 配列から要素を取り出す\n", "print(ringo_list[0]) # ここでエラーになるという。どぼじで???\n", "print(ringo_list[1])" ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "dirrr = \"GAIL-Expert-Data/1014-1302/pack-24957.npz\"\n", "\n", "memFile = np.load(dirrr, allow_pickle=True)\n", "states = memFile[\"states\"].tolist()\n", "actorProbs = memFile[\"actorProbs\"].tolist()\n", "actions = memFile[\"actions\"].tolist()\n", "rewards = memFile[\"rewards\"].tolist()\n", "dones = memFile[\"dones\"].tolist()\n", "memNum = len(states)" ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "C:\\Users\\UCUNI\\AppData\\Local\\Temp/ipykernel_39608/3742051961.py:3: VisibleDeprecationWarning: Creating an ndarray from ragged nested sequences (which is a list-or-tuple of lists-or-tuples-or ndarrays with different lengths or shapes) is deprecated. If you meant to do this, you must specify 'dtype=object' when creating the ndarray.\n", " npact = np.array(actions)\n" ] } ], "source": [ "states = np.reshape(states, (24957, 90))\n", "\n", "npact = np.array(actions)\n", "\n", "last = npact[:,3]\n", "newlast = []\n", "last[2][0]\n", "for i in range(len(last)):\n", " newlast.append(last[i][0])\n", "\n", "#print(newlast)\n", "npact[:,3] = newlast\n", "\n", "statesNP = np.asarray(states)\n", "actorProbsNP = np.asarray(actorProbs)\n", "actionsNP = np.asarray(npact)\n", "rewardsNP = np.asarray(rewards)\n", "donesNP = np.asarray(dones)\n", "thisSaveDir = \"GAIL-Expert-Data/1014-1302/pack-24957-RE.npz\"\n", "\n", "np.savez(\n", " thisSaveDir,\n", " states=statesNP,\n", " actorProbs=actorProbsNP,\n", " actions=actionsNP,\n", " rewards=rewardsNP,\n", " dones=donesNP,\n", ")\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "print(actions)\n", "npact = np.array(actions)\n", "\n", "last = npact[:,3]\n", "newlast = []\n", "last[2][0]\n", "for i in range(len(last)):\n", " newlast.append(last[i][0])\n", "\n", "#print(newlast)\n", "npact[:,3] = newlast\n", "print(npact)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3.9.7 64-bit", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.7" }, "orig_nbformat": 4, "vscode": { "interpreter": { "hash": "86e2db13b09bd6be22cb599ea60c1572b9ef36ebeaa27a4c8e961d6df315ac32" } } }, "nbformat": 4, "nbformat_minor": 2 }