मैं ओपनएआई जिम के एक गेम पर डीक्यूएल मॉडल लागू करने की कोशिश कर रहा हूं। लेकिन यह मुझे निम्नलिखित त्रुटि दे रहा है।
TypeError: len को प्रतीकात्मक Tensors के लिए अच्छी तरह से परिभाषित नहीं किया गया है। (सक्रियण_3 / पहचान: 0) कृपया आकार की जानकारी के
x.shape
बजाय कॉल करेंlen(x)
।
एक जिम वातावरण बनाना:
ENV_NAME = 'CartPole-v0'
env = gym.make(ENV_NAME)
np.random.seed(123)
env.seed(123)
nb_actions = env.action_space.n
मेरा मॉडल इस तरह दिखता है:
model = Sequential()
model.add(Flatten(input_shape=(1,) + env.observation_space.shape))
model.add(Dense(16))
model.add(Activation('relu'))
model.add(Dense(nb_actions))
model.add(Activation('linear'))
print(model.summary())
उस मॉडल को DeralN मॉडल को केरल-आरएल से निम्नानुसार फिट करना:
policy = EpsGreedyQPolicy()
memory = SequentialMemory(limit=50000, window_length=1)
dqn = DQNAgent(model=model, nb_actions=nb_actions, memory=memory, nb_steps_warmup=10, target_model_update=0.001, policy=policy)
dqn.compile(Adam(lr=1e-3), metrics=['mse', 'mae'])
dqn.fit(env, nb_steps=5000, visualize=False, verbose=3)
त्रुटि इस पंक्ति से है:
dqn = DQNAgent(model=model, nb_actions=nb_actions, memory=memory, nb_steps_warmup=10, target_model_update=0.001, policy=policy)
मैं केर-आरएल == 0.4.2 और टेंसोफ़्लो == 2.1.0 का उपयोग कर रहा हूं। अन्य उत्तरों के आधार पर, मैंने भी टेंसरफ़्लो == 2.0.0-बीटा 0 की कोशिश की, लेकिन यह त्रुटि को हल नहीं करता है।
क्या कोई मुझे समझा सकता है कि मैं इस त्रुटि का सामना क्यों कर रहा हूं? और इसे कैसे हल करें?
धन्यवाद।
env
आरएल मॉडल के प्रशिक्षण के लिए जिम गेम का माहौल है। len
TensorFlow पुस्तकालय में कहीं जगह ले रहा है। मैंने अधिक विवरण के लिए प्रश्न को अपडेट कर दिया है।
env
? कहांlen
जगह ले रहा है? या यह कॉलबैक का हिस्सा है?