Comments (1)
https://github.com/copilot/c/91bb6b3c-b325-4400-ba0e-85e87af043f7
Q: where does it perform test_episode before first train step?
A: In the BaseTrainer
class from the tianshou.trainer.base
module, testing is performed before the first training step in the reset
method. This is executed when the trainer object is initialized or made into an iterable with __iter__
.
Here is the relevant code snippet for clarification from the reset
method in the class BaseTrainer
:
def reset(self) -> None:
"""Initialize or reset the instance to yield a new iterator from zero."""
self.is_run = False
self.env_step = 0
if self.resume_from_log:
(
self.start_epoch,
self.env_step,
self.gradient_step,
) = self.logger.restore_data()
self.last_rew, self.last_len = 0.0, 0
self.start_time = time.time()
if self.train_collector is not None:
self.train_collector.reset_stat()
if self.train_collector.policy != self.policy or self.test_collector is None:
self.test_in_train = False
if self.test_collector is not None: # Testing starts here
assert self.episode_per_test is not None
assert not isinstance(self.test_collector, AsyncCollector) # Issue 700
self.test_collector.reset_stat()
test_result = test_episode(
self.policy,
self.test_collector,
self.test_fn,
self.start_epoch,
self.episode_per_test,
self.logger,
self.env_step,
self.reward_metric,
)
...
As shown, if a test_collector
is provided, it calls the test_episode
function before the first training step. This allows the model to be evaluated against a testing set before starting training. If a train_collector
is provided, it will also call the reset_stat
on the train_collector
to clear any previous statistics. If the testing policy doesn't match the training policy or no test_collector
is provided, it will not perform testing during the training phase.
from tianshou.
Related Issues (20)
- Revisit `Launcher` for starting multiple experiments HOT 1
- Adjust locations of setting the policy in train/eval mode HOT 1
- Change log is chaotic and partly uninformative HOT 2
- how to run RL using multi-nodes in cluster HOT 2
- Potential confusion about where start timesteps are collected in HL interfaces HOT 4
- Use Altair inside a notebook to display benchmark results
- Does Tianshou truly supports MARL out of the box? HOT 1
- Extend benchmark with mujoco v4 envs
- How can I make action sampling within the range specified by my environment when using onpolicy_trainer? HOT 6
- Document effects of the relations between buffer size, num workers and episode length
- Poetry update the torch versioned from cuda (2.0.1+cu118) to cpu (2.1.1) defaultly on Windows HOT 9
- [question] Why does Tianshou use a replay buffer in on-policy RL algorithms? HOT 1
- ImportError: cannot import name 'Self' from 'typing' (/root/miniconda3/lib/python3.10/typing.py) HOT 1
- ModuleNotFoundError: No module named 'tianshou.highlevel' HOT 2
- Support dict observation spaces in highlevel api
- get_env_attr not working in SubprocVectorEnv? HOT 4
- How to save the log which axis is each epoch not epoch's steps? HOT 2
- Python Bug: lambda function refers only one environment HOT 5
- expected to be in range of [-1, 0], but got 1 HOT 4
- Unable to replicate original PPO performance HOT 21
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from tianshou.