Unity 机器学习代理工具包 (ML-Agents) 是一个开源项目,它使游戏和模拟能够作为训练智能代理的环境。
您最多选择25个主题 主题必须以中文或者字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
 
 
 
 
 

347 行
115 KiB

{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"import os"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"WARNING:tensorflow:From /Users/yanchao.sun/python-envs/mlagents-env/lib/python3.7/site-packages/tensorflow/python/compat/v2_compat.py:96: disable_resource_variables (from tensorflow.python.ops.variable_scope) is deprecated and will be removed in a future version.\n",
"Instructions for updating:\n",
"non-resource variables are not supported in the long term\n"
]
}
],
"source": [
"from typing import Any, Dict, Optional, List, Tuple\n",
"from mlagents.trainers.models import EncoderType"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"scrolled": true
},
"outputs": [],
"source": [
"from mlagents.trainers.models import ModelUtils"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"from mlagents.tf_utils import tf\n",
"from mlagents import tf_utils"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"def create_encoder(\n",
" visual_in: List[tf.Tensor],\n",
" vector_in: tf.Tensor,\n",
" h_size: int,\n",
" feature_size: int,\n",
" num_layers: int,\n",
" vis_encode_type: EncoderType,\n",
") -> tf.Tensor:\n",
" with tf.variable_scope(\"encoding\"):\n",
" hidden_stream = ModelUtils.create_observation_streams(\n",
" visual_in,\n",
" vector_in,\n",
" 1,\n",
" h_size,\n",
" num_layers,\n",
" vis_encode_type,\n",
" )[0]\n",
"\n",
" latent = tf.layers.dense(\n",
" hidden_stream,\n",
" feature_size,\n",
" name=\"latent\",\n",
" activation=ModelUtils.swish,\n",
" kernel_initializer=tf.initializers.variance_scaling(1.0),\n",
" )\n",
" return latent"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [],
"source": [
"def load_encoder(path, sess, variables):\n",
" saver = tf.train.Saver(variables)\n",
" checkpoint = os.path.join(path, f\"encoding.ckpt\")\n",
" saver.restore(sess, checkpoint)\n",
" print(\"loaded from path\", path)"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [],
"source": [
"h_size = 32\n",
"feature_size = 2\n",
"num_layers = 1\n",
"vis_encode_type = \"simple\"\n",
"input_size = 4"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[<tf.Variable 'encoding/main_graph_0/hidden_0/kernel:0' shape=(4, 32) dtype=float32_ref>, <tf.Variable 'encoding/main_graph_0/hidden_0/bias:0' shape=(32,) dtype=float32_ref>, <tf.Variable 'encoding/latent/kernel:0' shape=(32, 2) dtype=float32_ref>, <tf.Variable 'encoding/latent/bias:0' shape=(2,) dtype=float32_ref>]\n",
"INFO:tensorflow:Restoring parameters from ./transfer_results/model_normal_s0/Simple/encoding.ckpt\n",
"loaded from path ./transfer_results/model_normal_s0/Simple\n"
]
}
],
"source": [
"graph = tf.Graph()\n",
"sess = tf.Session(config=tf_utils.generate_session_config(), graph=graph)\n",
"with graph.as_default():\n",
" vector_in = ModelUtils.create_vector_input(input_size)\n",
" encoder = create_encoder([], vector_in, h_size, feature_size, num_layers, vis_encode_type)\n",
" print(tf.get_collection(tf.GraphKeys.TRAINABLE_VARIABLES))\n",
" load_encoder(\"./transfer_results/model_normal_s0/Simple\", sess, \n",
" tf.get_collection(tf.GraphKeys.TRAINABLE_VARIABLES, \"encoding\"))"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[[-0.00607633 -0.0811841 ]]\n"
]
}
],
"source": [
"with graph.as_default():\n",
" print(sess.run(encoder, feed_dict={vector_in: [[1., 1., 1., 1.]]}))"
]
},
{
"cell_type": "code",
"execution_count": 59,
"metadata": {},
"outputs": [],
"source": [
"from matplotlib.colors import LinearSegmentedColormap\n",
"\n",
"def bluegreen(y):\n",
" red = [(0.0, 0.0, 0.0), (0.5, y, y), (1.0, 0.0, 0.0)]\n",
" green = [(0.0, 0.0, 0.0), (0.5, y, y), (1.0, y, y)]\n",
" blue = [(0.0, y, y), (0.5, y, y),(1.0,0.0,0.0)]\n",
" colordict = dict(red=red, green=green, blue=blue)\n",
" bluegreenmap = LinearSegmentedColormap('bluegreen', colordict, 256)\n",
" return bluegreenmap\n",
"\n",
"def my_color(i,j):\n",
" return (i, j, max(0,1-i-j))"
]
},
{
"cell_type": "code",
"execution_count": 62,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"x = np.arange(0,1,0.1)\n",
"y = np.arange(0,1,0.1)\n",
"for i in x:\n",
" for j in y:\n",
" plt.scatter(i, j, color=my_color(i,j))\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 66,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"with graph.as_default():\n",
" for i in x:\n",
" for j in y:\n",
" encoded = sess.run(encoder, feed_dict={vector_in: [[1., 1., i, j]]})\n",
" plt.scatter(encoded[0][0], encoded[0][1], color=my_color(i,j))\n",
"plt.title(\"goal = (1,1)\")\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 67,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"with graph.as_default():\n",
" for i in x:\n",
" for j in y:\n",
" encoded = sess.run(encoder, feed_dict={vector_in: [[-1., -1., i, j]]})\n",
" plt.scatter(encoded[0][0], encoded[0][1], color=my_color(i,j))\n",
"plt.title(\"goal = (-1,-1)\")\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 68,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"with graph.as_default():\n",
" for i in x:\n",
" for j in y:\n",
" encoded = sess.run(encoder, feed_dict={vector_in: [[0, 0, i, j]]})\n",
" plt.scatter(encoded[0][0], encoded[0][1], color=my_color(i,j))\n",
"plt.title(\"goal = (0,0)\")\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 69,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"with graph.as_default():\n",
" for i in x:\n",
" for j in y:\n",
" encoded = sess.run(encoder, feed_dict={vector_in: [[0.1, -0.2, i, j]]})\n",
" plt.scatter(encoded[0][0], encoded[0][1], color=my_color(i,j))\n",
"plt.title(\"goal = (0.1, -0.2)\")\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "mlagents-env",
"language": "python",
"name": "mlagents-env"
},
"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.7.6"
}
},
"nbformat": 4,
"nbformat_minor": 4
}