fix bug in restore genome.

This commit is contained in:
wls2002
2024-05-31 19:43:14 +08:00
parent bc8267bad0
commit d6e9ff5d9a
4 changed files with 62 additions and 20 deletions

View File

@@ -7,8 +7,8 @@
"metadata": {
"collapsed": true,
"ExecuteTime": {
"end_time": "2024-05-30T11:40:55.584592400Z",
"start_time": "2024-05-30T11:40:53.016051600Z"
"end_time": "2024-05-31T09:01:41.824974900Z",
"start_time": "2024-05-31T09:01:39.138674100Z"
}
},
"outputs": [],
@@ -25,7 +25,7 @@
"outputs": [
{
"data": {
"text/plain": "((10, 5), (10, 4))"
"text/plain": "((5, 5), (5, 4))"
},
"execution_count": 2,
"metadata": {},
@@ -33,7 +33,7 @@
}
],
"source": [
"genome = DefaultGenome(num_inputs=3, num_outputs=2, max_nodes=10, max_conns=10)\n",
"genome = DefaultGenome(num_inputs=3, num_outputs=1, max_nodes=5, max_conns=5)\n",
"state = genome.setup()\n",
"key = jax.random.PRNGKey(0)\n",
"nodes, conns = genome.initialize(state, key)\n",
@@ -42,8 +42,8 @@
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2024-05-30T11:40:59.021858400Z",
"start_time": "2024-05-30T11:40:55.592593400Z"
"end_time": "2024-05-31T09:01:45.179170400Z",
"start_time": "2024-05-31T09:01:41.832976100Z"
}
},
"id": "89fb5cd0e77a028d"
@@ -54,7 +54,7 @@
"outputs": [
{
"data": {
"text/plain": "(2, 10, 10)"
"text/plain": "(Array([0, 1, 2, 4, 3], dtype=int32, weak_type=True),\n Array([[ 0. , -1.013169 , 1. , 0. , 0. ],\n [ 1. , -0.3775248 , 1. , 0. , 0. ],\n [ 2. , 0.7407059 , 1. , 0. , 0. ],\n [ 3. , -0.66817343, 1. , 0. , 0. ],\n [ 4. , 0.5336131 , 1. , 0. , 0. ]], dtype=float32, weak_type=True),\n Array([[[ nan, nan, nan, nan,\n 0.13149254],\n [ nan, nan, nan, nan,\n 0.02001922],\n [ nan, nan, nan, nan,\n -0.79229796],\n [ nan, nan, nan, nan,\n nan],\n [ nan, nan, nan, -0.57102853,\n nan]]], dtype=float32, weak_type=True))"
},
"execution_count": 3,
"metadata": {},
@@ -62,14 +62,14 @@
}
],
"source": [
"unflatten = unflatten_conns(nodes, conns)\n",
"unflatten.shape"
"transformed = genome.transform(state, nodes, conns)\n",
"transformed"
],
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2024-05-30T11:40:59.472701700Z",
"start_time": "2024-05-30T11:40:59.021858400Z"
"end_time": "2024-05-31T09:01:45.729969500Z",
"start_time": "2024-05-31T09:01:45.178173400Z"
}
},
"id": "aaa88227bbf29936"
@@ -80,7 +80,7 @@
"outputs": [
{
"data": {
"text/plain": "(Array([[ 0. , 5. , 1. , -0.41923347],\n [ 1. , 5. , 1. , -3.1815007 ],\n [ 2. , 5. , 1. , 0.5184341 ],\n [ 5. , 3. , 1. , -1.9784615 ],\n [ 5. , 4. , 1. , 0.7132204 ],\n [ nan, nan, nan, nan],\n [ nan, nan, nan, nan],\n [ nan, nan, nan, nan],\n [ nan, nan, nan, nan],\n [ nan, nan, nan, nan]], dtype=float32, weak_type=True),\n Array([[ 0. , 5. , 1. , -0.41923347],\n [ 1. , 5. , 1. , -3.1815007 ],\n [ 2. , 5. , 1. , 0.5184341 ],\n [ 5. , 3. , 1. , -1.9784615 ],\n [ 5. , 4. , 1. , 0.7132204 ],\n [ nan, nan, nan, nan],\n [ nan, nan, nan, nan],\n [ nan, nan, nan, nan],\n [ nan, nan, nan, nan],\n [ nan, nan, nan, nan]], dtype=float32))"
"text/plain": "(Array([[ 0. , -1.013169 , 1. , 0. , 0. ],\n [ 1. , -0.3775248 , 1. , 0. , 0. ],\n [ 2. , 0.7407059 , 1. , 0. , 0. ],\n [ 3. , -0.66817343, 1. , 0. , 0. ],\n [ 4. , 0.5336131 , 1. , 0. , 0. ]], dtype=float32, weak_type=True),\n Array([[ 1. , 0. , 4. , 0.13149254],\n [ 1. , 1. , 4. , 0.02001922],\n [ 1. , 2. , 4. , -0.79229796],\n [ 1. , 4. , 3. , -0.57102853],\n [ 1. , nan, nan, nan]], dtype=float32))"
},
"execution_count": 4,
"metadata": {},
@@ -89,18 +89,44 @@
],
"source": [
"# single flatten\n",
"flatten = flatten_conns(nodes, unflatten, C=10)\n",
"conns, flatten"
"nodes, conns = genome.restore(state, transformed)\n",
"nodes, conns"
],
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2024-05-30T11:41:00.308954100Z",
"start_time": "2024-05-30T11:40:59.469541500Z"
"end_time": "2024-05-31T09:01:46.660023600Z",
"start_time": "2024-05-31T09:01:45.724970700Z"
}
},
"id": "f2c65de38fdcff8f"
},
{
"cell_type": "code",
"execution_count": 7,
"outputs": [
{
"data": {
"text/plain": "Array([[ 1. , 3. , 0. , 1. , 4. ,\n 0.13149254],\n [ 1. , 3. , 1. , 1. , 4. ,\n 0.02001922],\n [ 1. , 3. , 2. , 1. , 4. ,\n -0.79229796],\n [ 1. , 3. , 4. , 1. , 3. ,\n -0.57102853],\n [ 1. , 3. , nan, 1. , nan,\n nan]], dtype=float32)"
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"conns = jnp.insert(conns, obj=3, values=1, axis=1)\n",
"conns"
],
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2024-05-31T09:03:35.665080500Z",
"start_time": "2024-05-31T09:03:35.013654700Z"
}
},
"id": "10bcb665c32fb728"
},
{
"cell_type": "code",
"execution_count": 8,