Tensorflow -LeistungsproblemPython

Python-Programme
Anonymous
 Tensorflow -Leistungsproblem

Post by Anonymous »

Ich versuche, ein sehr primitives, verstärktes Lernmodell auf Tensorflow zu machen. Obwohl es relativ klein ist, dauert eine einzelne Iteration ~ 6-7 Sekunden.

Code: Select all

     def build_model():
model = keras.Sequential([
layers.Input(shape=(400,)),
layers.Dense(128, activation="relu"),
layers.Dense(128, activation="relu"),
layers.Dense(3)
])
model.compile(optimizer=keras.optimizers.Adam(learning_rate=0.001), loss="huber")
return model

class DQNAgent:
def __init__(self):
self.model = build_model()
self.target_model = build_model()
self.target_model.set_weights(self.model.get_weights())

self.memory = deque(maxlen=1000)
self.epsilon = 1.0
self.epsilon_min = 0.01
self.epsilon_decay = 0.995
self.gamma = 0.95
self.batch_size = 32

def choose_action(self, state):
if np.random.rand() < self.epsilon:
return random.choice([0, 1, 2])
q_values = self.model.predict(np.array([state]), verbose=0)
return np.argmax(q_values[0])

def remember(self, state, action, reward, next_state, done):
self.memory.append((state, action, reward, next_state, done))

def train(self):
if len(self.memory) < self.batch_size:
return
batch = random.sample(self.memory, self.batch_size)
states, targets = [], []

for state, action, reward, next_state, done in batch:
target = reward
if not done:
target += self.gamma * np.max(self.target_model.predict(np.array([next_state]), verbose=0))

q_values = self.model.predict(np.array([state]), verbose=0)
q_values[0][action] = target

states.append(state)
targets.append(q_values[0])

self.model.fit(np.array(states), np.array(targets), epochs=1, verbose=0)

if self.epsilon > self.epsilon_min:
self.epsilon *= self.epsilon_decay

def update_target_model(self):
self.target_model.set_weights(self.model.get_weights())
Nach der Profilierung des gesamten angegebenen Codes habe ich gesehen, dass das Modell.Predict () so viel Zeit in Anspruch nimmt:
Profiler -Ergebnisse
Anfangs dachte ich, ich müsste nur bei GPU berechnen, aber nach zwei Tagen verschwendete ich, um dies zu tun, nichts hat sich wirklich geändert. ? p>
python:3.10
TensorFlow: 2.10 < /p>
Bitte sagen Sie mir, ob ich vergessen habe, einige wichtige Informationen anzugeben < / P>

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post