Crop Image / Training now works / Got memory error while training

This commit is contained in:
Tobi committed 2019-05-22 16:50:35 +02:00
1 parent 82a4c23258
commit 8082fde44c
9 files changed
+58244 -40

No files matched your search

+1 -1
View File
@@ -18,7 +18,7 @@ MonoBehaviour:
vectorActionSize: 04000000
cameraResolutions:
- width: 320
height: 240
height: 120
blackAndWhite: 0
vectorActionDescriptions:
-
+104 -10
View File
@@ -145,6 +145,7 @@ Transform:
- {fileID: 380448017}
- {fileID: 2078653368}
- {fileID: 435986020}
- {fileID: 712179487}
m_Father: {fileID: 0}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@@ -556,6 +557,98 @@ Transform:
m_Father: {fileID: 7570006596986120124}
m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 35, y: 0, z: 0}
--- !u!1 &712179486
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 712179487}
- component: {fileID: 712179490}
- component: {fileID: 712179489}
- component: {fileID: 712179488}
m_Layer: 0
m_Name: TextureDisplayCropped
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &712179487
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 712179486}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 1.35, y: 1.5, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 99578049}
m_RootOrder: 6
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!64 &712179488
MeshCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 712179486}
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 1
serializedVersion: 3
m_Convex: 0
m_CookingOptions: 14
m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0}
--- !u!23 &712179489
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 712179486}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 0
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
--- !u!33 &712179490
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 712179486}
m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0}
--- !u!1 &730369748
GameObject:
m_ObjectHideFlags: 0
@@ -879,7 +972,9 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: b940f59f459dc49479614595d02dcbbc, type: 3}
m_Name:
m_EditorClassIdentifier:
processedImageRenderer: {fileID: 1863707383}
renderTextureCropped: {fileID: 8400000, guid: 8bf12f4401860c043a77209428e97b29,
type: 2}
processedImageRendererCropped: {fileID: 712179489}
--- !u!1 &918537782
GameObject:
m_ObjectHideFlags: 0
@@ -1601,7 +1696,7 @@ GameObject:
m_Layer: 0
m_Name: StartPoint
m_TagString: Untagged
m_Icon: {fileID: 3936346786652291628, guid: 0000000000000000d000000000000000, type: 0}
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
@@ -1640,8 +1735,12 @@ PrefabInstance:
type: 3}
propertyPath: m_Icon
value:
objectReference: {fileID: 5132851093641282708, guid: 0000000000000000d000000000000000,
type: 0}
objectReference: {fileID: 0}
- target: {fileID: 1857425275647696726, guid: 0f97dac5215d69a4795763340d82925d,
type: 3}
propertyPath: m_IsActive
value: 1
objectReference: {fileID: 0}
- target: {fileID: 7570006595835424293, guid: 0f97dac5215d69a4795763340d82925d,
type: 3}
propertyPath: m_LocalPosition.x
@@ -1697,11 +1796,6 @@ PrefabInstance:
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1857425275647696726, guid: 0f97dac5215d69a4795763340d82925d,
type: 3}
propertyPath: m_IsActive
value: 1
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 0f97dac5215d69a4795763340d82925d, type: 3}
--- !u!1 &7570006596986120123 stripped
@@ -1732,7 +1826,7 @@ MonoBehaviour:
agentParameters:
agentCameras: []
agentRenderTextures:
- {fileID: 8400000, guid: 196f45b12806aaa449adc2ee1ca3b091, type: 2}
- {fileID: 8400000, guid: 8bf12f4401860c043a77209428e97b29, type: 2}
maxStep: 1000
resetOnDone: 1
onDemandDecision: 1
@@ -6,7 +6,19 @@ using System.Threading.Tasks;
public class ImageProcessor : MonoBehaviour
{
public MeshRenderer processedImageRenderer;
[Header("RenderTexture")]
[Tooltip("RenderTexture that will be passed to the LearningBrain.")]
public RenderTexture renderTextureCropped;
[Header("Debug Helper")]
//[Tooltip("Reference to the MeshRenderer that will show the processed Image from Cozmo")]
//public MeshRenderer processedImageRenderer;
[Tooltip("Reference to the MeshRenderer that will show the processed and cropped Image from Cozmo")]
public MeshRenderer processedImageRendererCropped;
/// <summary>
/// Center of Gravity in the cropped canny image
/// </summary>
public Point CenterOfGravity { get; private set; }
// OpenCVSharp parameters
@@ -17,34 +29,56 @@ public class ImageProcessor : MonoBehaviour
private byte[] cannyImageData;
private const int imWidth = 320; //TODO: Set width and height based on agent observation size
private const int imHeight = 240;
private Camera textureCamera;
private int imWidth = 320; // Width of the camera image from the virtual cozmo
private int imHeight = 240; // Height of the camera image from the virtual cozmo
private int croppedImHeight = 120; // Height of the cropped camera image from the virtual cozmo
private Camera textureCamera; // Virtual Cozmo camera
private void Start()
{
// Get reference to the cozmo camera
textureCamera = GetComponent<Camera>();
// Set image widths and heights based on the given RenderTextures
imWidth = textureCamera.targetTexture.width;
imHeight = textureCamera.targetTexture.height;
croppedImHeight = renderTextureCropped.height;
//assign the processed targetTexture to the renderer to display the image
processedImageRenderer.material.mainTexture = textureCamera.targetTexture;
//processedImageRenderer.material.mainTexture = textureCamera.targetTexture;
processedImageRendererCropped.material.mainTexture = renderTextureCropped;
// initialize video / image with given size
videoSourceImage = new Mat(imHeight, imWidth, MatType.CV_8UC3);
videoSourceImageData = new Vec3b[imHeight * imWidth];
cannyImage = new Mat(imHeight, imWidth, MatType.CV_8UC1);
cannyImageData = new byte[imHeight * imWidth];
cannyImageData = new byte[croppedImHeight * imWidth];
}
/// <summary>
/// Gets called when a new image arrives from the camera this script lies on
/// </summary>
/// <param name="source"></param>
/// <param name="destination"></param>
private void OnRenderImage(RenderTexture source, RenderTexture destination)
{
Texture2D tex = RenderTextureToTexture2D(source);
videoSourceImage = TextureToMat(tex);
cannyImage = ProcessImage(videoSourceImage);
cannyImage = CropImage(cannyImage);
CenterOfGravityTest(cannyImage);
processedTexture = MatToTexture(cannyImage);
Graphics.Blit(processedTexture, destination);
//Graphics.Blit(processedTexture, destination);
Graphics.Blit(processedTexture, renderTextureCropped);
}
// Crop image to just see the middle of the original image
private Mat CropImage(Mat image)
{
//cut a fourth out of the top and bottom of the image
OpenCvSharp.Rect rectCroped = new OpenCvSharp.Rect(0, image.Height / 4, image.Width, image.Height / 2);
Mat croppedImage = new Mat(image, rectCroped);
return croppedImage;
}
private Texture2D RenderTextureToTexture2D(RenderTexture rTex)
@@ -101,10 +135,10 @@ public class ImageProcessor : MonoBehaviour
// cannyImageData is byte array, because canny image is grayscale
mat.GetArray(0, 0, cannyImageData);
// create Color32 array that can be assigned to Texture2D directly
Color32[] c = new Color32[imHeight * imWidth];
Color32[] c = new Color32[croppedImHeight * imWidth];
// parallel for loop
Parallel.For(0, imHeight, i =>
Parallel.For(0, croppedImHeight, i =>
{
for (var j = 0; j < imWidth; j++)
{
@@ -120,7 +154,7 @@ public class ImageProcessor : MonoBehaviour
}
});
Texture2D texture = new Texture2D(imWidth, imHeight, TextureFormat.RGBA32, true, true);
Texture2D texture = new Texture2D(imWidth, croppedImHeight, TextureFormat.RGBA32, true, true);
texture.SetPixels32(c);
// to update the texture, OpenGL manner
texture.Apply();
+2 -2
View File
@@ -94,8 +94,8 @@ public class CozmoAgent : Agent
}
else if (centerOfGravity.X > renderCamera.targetTexture.width / 2 - farAreaLimit && centerOfGravity.X < renderCamera.targetTexture.width / 2 + farAreaLimit)
{
SetReward(-0.7f);
print("Reward: -0.7");
SetReward(-0.3f);
print("Reward: -0.3");
}
else
{
@@ -0,0 +1,34 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!84 &8400000
RenderTexture:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: CozmoCannyCroped
m_ImageContentsHash:
serializedVersion: 2
Hash: 00000000000000000000000000000000
m_ForcedFallbackFormat: 4
m_DownscaleFallback: 0
m_Width: 320
m_Height: 120
m_AntiAliasing: 1
m_DepthFormat: 2
m_ColorFormat: 0
m_MipMap: 0
m_GenerateMips: 1
m_SRGB: 0
m_UseDynamicScale: 0
m_BindMS: 0
m_TextureSettings:
serializedVersion: 2
m_FilterMode: 1
m_Aniso: 0
m_MipBias: 0
m_WrapU: 1
m_WrapV: 1
m_WrapW: 1
m_Dimension: 2
m_VolumeDepth: 1
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 8bf12f4401860c043a77209428e97b29
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 8400000
userData:
assetBundleName:
assetBundleVariant:
+22
View File
@@ -0,0 +1,22 @@
default:
trainer: ppo
batch_size: 1024
beta: 5.0e-3
buffer_size: 10240
epsilon: 0.2
gamma: 0.99
hidden_units: 128
lambd: 0.95
learning_rate: 3.0e-4
max_steps: 5.0e4
memory_size: 256
normalize: false
num_epoch: 3
num_layers: 2
time_horizon: 64
sequence_length: 64
summary_freq: 1000
use_recurrent: false
use_curiosity: false
curiosity_strength: 0.01
curiosity_enc_size: 128
+58020
View File
File diff suppressed because it is too large. Load diff
+7 -15
View File
@@ -136,7 +136,7 @@
},
{
"data": {
"image/png": "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 truncated
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
@@ -195,27 +195,19 @@
"name": "stdout",
"output_type": "stream",
"text": [
"Total reward this episode: 762.3000014424324\n",
"Total reward this episode: -992.6999998688698\n",
"Total reward this episode: -1000.0\n",
"Total reward this episode: -992.1999996900558\n",
"Total reward this episode: -999.0999999642372\n"
"Total reward this episode: -699.7999988794327\n"
]
},
{
"ename": "MemoryError",
"evalue": "",
"ename": "KeyError",
"evalue": "'CozmoLearningBrain'",
"output_type": "error",
"traceback": [
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[1;31mMemoryError\u001b[0m Traceback (most recent call last)",
"\u001b[1;31mKeyError\u001b[0m Traceback (most recent call last)",
"\u001b[1;32m<ipython-input-5-3140409a1130>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n\u001b[0;32m 10\u001b[0m \u001b[1;32melse\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 11\u001b[0m \u001b[0maction\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mcolumn_stack\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mnp\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mrandom\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mrandint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;36m0\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0maction_size\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mi\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0msize\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mlen\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0menv_info\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0magents\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;32mfor\u001b[0m \u001b[0mi\u001b[0m \u001b[1;32min\u001b[0m \u001b[0mrange\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mlen\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0maction_size\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 12\u001b[1;33m \u001b[0menv_info\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0menv\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mstep\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0maction\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mdefault_brain\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 13\u001b[0m \u001b[0mepisode_rewards\u001b[0m \u001b[1;33m+=\u001b[0m \u001b[0menv_info\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mrewards\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;36m0\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 14\u001b[0m \u001b[0mdone\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0menv_info\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mlocal_done\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;36m0\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
"\u001b[1;32mc:\\users\\tobi\\downloads\\ml-agents-0.8.1\\ml-agents-envs\\mlagents\\envs\\environment.py\u001b[0m in \u001b[0;36mstep\u001b[1;34m(self, vector_action, memory, text_action, value, custom_action)\u001b[0m\n\u001b[0;32m 436\u001b[0m \u001b[1;32mraise\u001b[0m \u001b[0mKeyboardInterrupt\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 437\u001b[0m \u001b[0mrl_output\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0moutputs\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mrl_output\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 438\u001b[1;33m \u001b[0mstate\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_get_state\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mrl_output\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 439\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_global_done\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mstate\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 440\u001b[0m \u001b[1;32mfor\u001b[0m \u001b[0m_b\u001b[0m \u001b[1;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_external_brain_names\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
"\u001b[1;32mc:\\users\\tobi\\downloads\\ml-agents-0.8.1\\ml-agents-envs\\mlagents\\envs\\environment.py\u001b[0m in \u001b[0;36m_get_state\u001b[1;34m(self, output)\u001b[0m\n\u001b[0;32m 496\u001b[0m \u001b[0magent_info_list\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0moutput\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0magentInfos\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mbrain_name\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mvalue\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 497\u001b[0m _data[brain_name] = BrainInfo.from_agent_proto(agent_info_list,\n\u001b[1;32m--> 498\u001b[1;33m self.brains[brain_name])\n\u001b[0m\u001b[0;32m 499\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0m_data\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mglobal_done\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 500\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n",
"\u001b[1;32mc:\\users\\tobi\\downloads\\ml-agents-0.8.1\\ml-agents-envs\\mlagents\\envs\\brain.py\u001b[0m in \u001b[0;36mfrom_agent_proto\u001b[1;34m(agent_info_list, brain_params)\u001b[0m\n\u001b[0;32m 91\u001b[0m obs = [BrainInfo.process_pixels(x.visual_observations[i],\n\u001b[0;32m 92\u001b[0m brain_params.camera_resolutions[i]['blackAndWhite'])\n\u001b[1;32m---> 93\u001b[1;33m for x in agent_info_list]\n\u001b[0m\u001b[0;32m 94\u001b[0m \u001b[0mvis_obs\u001b[0m \u001b[1;33m+=\u001b[0m \u001b[1;33m[\u001b[0m\u001b[0mobs\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 95\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mlen\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0magent_info_list\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;33m==\u001b[0m \u001b[1;36m0\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
"\u001b[1;32mc:\\users\\tobi\\downloads\\ml-agents-0.8.1\\ml-agents-envs\\mlagents\\envs\\brain.py\u001b[0m in \u001b[0;36m<listcomp>\u001b[1;34m(.0)\u001b[0m\n\u001b[0;32m 91\u001b[0m obs = [BrainInfo.process_pixels(x.visual_observations[i],\n\u001b[0;32m 92\u001b[0m brain_params.camera_resolutions[i]['blackAndWhite'])\n\u001b[1;32m---> 93\u001b[1;33m for x in agent_info_list]\n\u001b[0m\u001b[0;32m 94\u001b[0m \u001b[0mvis_obs\u001b[0m \u001b[1;33m+=\u001b[0m \u001b[1;33m[\u001b[0m\u001b[0mobs\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 95\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mlen\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0magent_info_list\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;33m==\u001b[0m \u001b[1;36m0\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
"\u001b[1;32mc:\\users\\tobi\\downloads\\ml-agents-0.8.1\\ml-agents-envs\\mlagents\\envs\\brain.py\u001b[0m in \u001b[0;36mprocess_pixels\u001b[1;34m(image_bytes, gray_scale)\u001b[0m\n\u001b[0;32m 76\u001b[0m \u001b[0ms\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mbytearray\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mimage_bytes\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 77\u001b[0m \u001b[0mimage\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mImage\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mopen\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mio\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mBytesIO\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0ms\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 78\u001b[1;33m \u001b[0ms\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0marray\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mimage\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;33m/\u001b[0m \u001b[1;36m255.0\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 79\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mgray_scale\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 80\u001b[0m \u001b[0ms\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mmean\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0ms\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0maxis\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;36m2\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
"\u001b[1;31mMemoryError\u001b[0m: "
"\u001b[1;32mc:\\users\\tobi\\downloads\\ml-agents-0.8.1\\ml-agents-envs\\mlagents\\envs\\environment.py\u001b[0m in \u001b[0;36mstep\u001b[1;34m(self, vector_action, memory, text_action, value, custom_action)\u001b[0m\n\u001b[0;32m 439\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_global_done\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mstate\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 440\u001b[0m \u001b[1;32mfor\u001b[0m \u001b[0m_b\u001b[0m \u001b[1;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_external_brain_names\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 441\u001b[1;33m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_n_agents\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0m_b\u001b[0m\u001b[1;33m]\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mlen\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mstate\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;36m0\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0m_b\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0magents\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 442\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0mstate\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;36m0\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 443\u001b[0m \u001b[1;32melif\u001b[0m \u001b[1;32mnot\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_loaded\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
"\u001b[1;31mKeyError\u001b[0m: 'CozmoLearningBrain'"
]
}
],