Hi @<1570220858075516928:profile|SlipperySheep79> ! What happens if you do this:
import yaml
import argparse
from my_pipeline.pipeline import run_pipeline
from clearml import Task
parser = argparse.ArgumentParser()
parser.add_argument('--config', type=str, required=True)
if __name__ == '__main__':
if not Task.current_task():
args = parser.parse_args()
with open(args.config) as f:
config = yaml.load(f, yaml.FullLoader)
run_pipeline(config)
Hi RoundMosquito25 ! What clearml version are you using? Do you get any error messages when you are setting floats instead of strings?
Hi @<1545216070686609408:profile|EnthusiasticCow4> ! Can't you just get the values of the hyperparameters and the losses, then plot them with something like mathplotlib
then just report the plot to ClearML?
Hi @<1555000557775622144:profile|CharmingSealion31> ! When creating the HyperParameterOptimizer
, pass the argument optuna_sampler=YOUR_SAMPLER
.
Hi @<1643060801088524288:profile|HarebrainedOstrich43> ! Thank you for reporting. We will get back to you as soon as we have something
Hi @<1571308003204796416:profile|HollowPeacock58> ! The changes should be reflected. Do you have a small example that could help us reproduce the issue?
Hi @<1590514584836378624:profile|AmiableSeaturtle81> ! add_files
already uses multi-threading, so threads would not help (see the max_workers
argument).
If you are using a cloud provider such as s3 it would be useful setting this argument, or look for config entries in clearml.conf
that would speed-up the upload (such as aws.s3.boto3.max_multipart_concurrency
)
Hi @<1558986821491232768:profile|FunnyAlligator17> ! There are a few things you should consider:
- Artifacts are not necessarily pickles. The objects you upload as artifacts can be serialized in a variety of ways. Our artifacts manager handles both serialization and deserialization. Because of this, you should not pickle the objects yourself, but specify
artifact_object
as being the object itself. - To get the deserialized artifact, just call
task.artifacts[name].get()
(not get_local...
is it just this script that you are running that breaks? What happens if instead of pipe.upload_model
you callprint(pipe._get_pipeline_task())
?
Hi! Can you please provide us with code that would help us reproduce this issue? Is it just downloading from gcp?
Hi again, @<1526734383564722176:profile|BoredBat47> ! I actually took a closer look at this. The config file should look like this:
s3 {
key: "KEY"
secret: "SECRET"
use_credentials_chain: false
credentials: [
{
host: "myendpoint:443" # no http(s):// and no s3:// prefix, also no bucket name
key: "KEY"
secret: "SECRET"
secure: true # ...
btw @<1590514584836378624:profile|AmiableSeaturtle81> , can you try to specify the host without http*
and try to set the port to 443? like s3.my _host:443
(or even without the port)
@<1719162259181146112:profile|ShakySnake40> the data is still present in the parent and it won't be uploaded again. Also, when you pull a child dataset you are also pulling the dataset's parent data. dataset.id
is a string that uniquely identifies each dataset in the system. In my example, you are using the ID to reference a dataset which would be a parent of the newly created dataset (that is, after getting the dataset via Dataset.get
)
Hi @<1719162259181146112:profile|ShakySnake40> ! It looks like you are trying to update an already finalized dataset. Datasets that are finalized cannot be updated. In general, you should create a new dataset that inherits from the dataset you want to update (via the parent_datasets
argument in Dataset.create
) and operate on that dataset instead
I left another comment today. It’s about something raising an exception when creating a set from the file entries
pruning old ancestors sounds like the right move for now.
I am honestly not sure if it will work, but we do have a http driver that could query your endpoint. None
It's worth to give it a try
Hi BoredHedgehog47 ! We tried to reproduce this, but failed. What we tried is running the attached main.py
which Popen
s sub.py
.
Can you please run main.py
as well and tell us if you still encounter the bug? If not, is there anything else you can think of that could trigger this bug besides creating a subprocess?
Thank you!
We used to have "<=20" as the default pip version in the agent. Looks like this default value still exists on your machine. But that version of pip doesn't know how to install your version of pytorch...
Hi @<1523707653782507520:profile|MelancholyElk85> ! I left you a comment on the PR
@<1675675705284759552:profile|NonsensicalAnt77> Can you try using None to setup the credentials? Maybe there is an issue parsing/finding the conf file
FlutteringWorm14 we do batch the reported scalars. The flow is like this: the task object will create a Reporter
object which will spawn a daemon in another child process that batches multiple report events. The batching is done after a certain time in the child process, or the parent process can force the batching after a certain number of report events are queued.
You could try this hack to achieve what you want:
` from clearml import Task
from clearml.backend_interface.metrics.repor...
UnevenDolphin73 looking at the code again, I think it is actually correct. it's a bit hackish, but we do use deferred_init
as an int internally. Why do you need to close the task exactly? Do you have a script that would highlight the behaviour change between <1.8.1
and >=1.8.1
?
it's the same file you added your s3 creds to
Hi @<1534706830800850944:profile|ZealousCoyote89> ! Do you have any info under STATUS REASON
? See the screenshot for an example:
Hi @<1533620191232004096:profile|NuttyLobster9> ! PipelineDecorator.get_current_pipeline
will return a PipelineDecorator
instance (which inherits from PipelineController
) once the pipeline function has been called. So
pipeline = PipelineDecorator.get_current_pipeline()
pipeline(*args)
doesn't really make sense. You should likely call pipeline = build_pipeline(*args)
instead
Hi @<1555000563244994560:profile|OutrageousSealion55> ! How do you pass base_task_id
in the HyperParamterOptimizer
?
Hi @<1523702000586330112:profile|FierceHamster54> ! Looks like we pull all the ancestors of a dataset when we finalize. I think this can be optimized. We will keep you posted when we make some improvements
Hi @<1523721697604145152:profile|YummyWhale40> ! Are you able to upload artifacts of any kind other than models to the CLEARML_DEFAULT_OUTPUT_URI?