# Error while fitting model in Benchmark

**URL:** <https://community.drivendata.org/t/error-while-fitting-model-in-benchmark/6441>\
**Category:** STAC Overflow: Map Floodwater from Radar Imagery\
**Created:** [August 18, 2021, 8:47pm UTC](https://community.drivendata.org/t/error-while-fitting-model-in-benchmark/6441 "2021-08-18T20:47:37Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![cbenson](https://avatars.discourse-cdn.com/v4/letter/c/4af34b/32.png) [@cbenson](https://community.drivendata.org/u/cbenson)\
**Post date:** [August 18, 2021, 8:47pm UTC](https://community.drivendata.org/t/error-while-fitting-model-in-benchmark/6441/1 "2021-08-18T20:47:38Z")

</div>

I’m getting this error while trying to fit the benchmark model:  
“AttributeError: ‘functools.partial’ object has no attribute ‘ **name** ’”  
While Googling around I couldn’t find an obvious answer. Upgrading python from 3.7 to 3.9 wasn’t the answer ( and a bigger pain then I expected ).

versions:  
Python 3.9.6  
pytorch-lightning: 1.4.2  
torch: 1.9.0  
tensorboard: 2.6.0

Here’s the full trace:  
AttributeError Traceback (most recent call last)  
~\AppData\Local\Temp/ipykernel\_16544/4191702415.py in   
22  
23 flood\_model = FloodModel(hparams=hparams)  
—\> 24 flood\_model.fit()

~\AppData\Local\Temp/ipykernel\_16544/1333484537.py in fit(self)  
194 # Set up and fit Trainer object  
195 self.trainer = pl.Trainer(\*\*self.trainer\_params)  
–\> 196 self.trainer.fit(self)

c:\development\data\_science\_competitions\drivendata\_floodwater\_v2\venv\lib\site-packages\pytorch\_lightning\trainer\trainer.py in fit(self, model, train\_dataloaders, val\_dataloaders, datamodule, train\_dataloader)  
551 self.checkpoint\_connector.resume\_start()  
552  
–\> 553 self.\_run(model)  
554  
555 assert self.state.stopped

c:\development\data\_science\_competitions\drivendata\_floodwater\_v2\venv\lib\site-packages\pytorch\_lightning\trainer\trainer.py in \_run(self, model)  
910  
911 # plugin will setup fitting (e.g. ddp will launch child processes)  
–\> 912 self.\_pre\_dispatch()  
913  
914 # restore optimizers, etc.

c:\development\data\_science\_competitions\drivendata\_floodwater\_v2\venv\lib\site-packages\pytorch\_lightning\trainer\trainer.py in \_pre\_dispatch(self)  
939 def \_pre\_dispatch(self):  
940 self.accelerator.pre\_dispatch(self)  
–\> 941 self.\_log\_hyperparams()  
942  
943 def \_log\_hyperparams(self):

c:\development\data\_science\_competitions\drivendata\_floodwater\_v2\venv\lib\site-packages\pytorch\_lightning\trainer\trainer.py in \_log\_hyperparams(self)  
968 self.logger.log\_hyperparams(hparams\_initial)  
969 self.logger.log\_graph(self.lightning\_module)  
–\> 970 self.logger.save()  
971  
972 def \_post\_dispatch(self):

c:\development\data\_science\_competitions\drivendata\_floodwater\_v2\venv\lib\site-packages\pytorch\_lightning\utilities\distributed.py in wrapped\_fn(\*args, \*\*kwargs)  
46 def wrapped\_fn(\*args, \*\*kwargs):  
47 if rank\_zero\_only.rank == 0:  
—\> 48 return fn(\*args, \*\*kwargs)  
49  
50 return wrapped\_fn

c:\development\data\_science\_competitions\drivendata\_floodwater\_v2\venv\lib\site-packages\pytorch\_lightning\loggers\tensorboard.py in save(self)  
248 # save the metatags file if it doesn’t exist and the log directory exists  
249 if self.\_fs.isdir(dir\_path) and not self.\_fs.isfile(hparams\_file):  
–\> 250 save\_hparams\_to\_yaml(hparams\_file, self.hparams)  
251  
252 @rank\_zero\_only

c:\development\data\_science\_competitions\drivendata\_floodwater\_v2\venv\lib\site-packages\pytorch\_lightning\core\saving.py in save\_hparams\_to\_yaml(config\_yaml, hparams)  
403 for k, v in hparams.items():  
404 try:  
–\> 405 yaml.dump(v)  
406 except TypeError:  
407 warn(f"Skipping ‘{k}’ parameter because it is not possible to safely dump to YAML.")

c:\development\data\_science\_competitions\drivendata\_floodwater\_v2\venv\lib\site-packages\yaml\__init_\_.py in dump(data, stream, Dumper, \*\*kwds)  
288 If stream is None, return the produced string instead.  
289 “”"  
–\> 290 return dump\_all([data], stream, Dumper=Dumper, \*\*kwds)  
291  
292 def safe\_dump\_all(documents, stream=None, \*\*kwds):

c:\development\data\_science\_competitions\drivendata\_floodwater\_v2\venv\lib\site-packages\yaml\__init_\_.py in dump\_all(documents, stream, Dumper, default\_style, default\_flow\_style, canonical, indent, width, allow\_unicode, line\_break, encoding, explicit\_start, explicit\_end, version, tags, sort\_keys)  
276 dumper.open()  
277 for data in documents:  
–\> 278 dumper.represent(data)  
279 dumper.close()  
280 finally:

c:\development\data\_science\_competitions\drivendata\_floodwater\_v2\venv\lib\site-packages\yaml\representer.py in represent(self, data)  
25  
26 def represent(self, data):  
—\> 27 node = self.represent\_data(data)  
28 self.serialize(node)  
29 self.represented\_objects = {}

c:\development\data\_science\_competitions\drivendata\_floodwater\_v2\venv\lib\site-packages\yaml\representer.py in represent\_data(self, data)  
50 for data\_type in data\_types:  
51 if data\_type in self.yaml\_multi\_representers:  
—\> 52 node = self.yaml\_multi\_representers[data\_type](self, data)  
53 break  
54 else:

c:\development\data\_science\_competitions\drivendata\_floodwater\_v2\venv\lib\site-packages\yaml\representer.py in represent\_object(self, data)  
340 if not args and not listitems and not dictitems   
341 and isinstance(state, dict) and newobj:  
–\> 342 return self.represent\_mapping(  
343 ‘tag:yaml.org,2002:python/object:’+function\_name, state)  
344 if not listitems and not dictitems \

c:\development\data\_science\_competitions\drivendata\_floodwater\_v2\venv\lib\site-packages\yaml\representer.py in represent\_mapping(self, tag, mapping, flow\_style)  
116 for item\_key, item\_value in mapping:  
117 node\_key = self.represent\_data(item\_key)  
–\> 118 node\_value = self.represent\_data(item\_value)  
119 if not (isinstance(node\_key, ScalarNode) and not node\_key.style):  
120 best\_style = False

c:\development\data\_science\_competitions\drivendata\_floodwater\_v2\venv\lib\site-packages\yaml\representer.py in represent\_data(self, data)  
50 for data\_type in data\_types:  
51 if data\_type in self.yaml\_multi\_representers:  
—\> 52 node = self.yaml\_multi\_representers[data\_type](self, data)  
53 break  
54 else:

c:\development\data\_science\_competitions\drivendata\_floodwater\_v2\venv\lib\site-packages\yaml\representer.py in represent\_object(self, data)  
344 if not listitems and not dictitems   
345 and isinstance(state, dict) and not state:  
–\> 346 return self.represent\_sequence(tag+function\_name, args)  
347 value = {}  
348 if args:

c:\development\data\_science\_competitions\drivendata\_floodwater\_v2\venv\lib\site-packages\yaml\representer.py in represent\_sequence(self, tag, sequence, flow\_style)  
90 best\_style = True  
91 for item in sequence:  
—\> 92 node\_item = self.represent\_data(item)  
93 if not (isinstance(node\_item, ScalarNode) and not node\_item.style):  
94 best\_style = False

c:\development\data\_science\_competitions\drivendata\_floodwater\_v2\venv\lib\site-packages\yaml\representer.py in represent\_data(self, data)  
46 data\_types = type(data). **mro**  
47 if data\_types[0] in self.yaml\_representers:  
—\> 48 node = self.yaml\_representers[data\_types[0]](self, data)  
49 else:  
50 for data\_type in data\_types:

c:\development\data\_science\_competitions\drivendata\_floodwater\_v2\venv\lib\site-packages\yaml\representer.py in represent\_tuple(self, data)  
284  
285 def represent\_tuple(self, data):  
–\> 286 return self.represent\_sequence(‘tag:yaml.org,2002:python/tuple’, data)  
287  
288 def represent\_name(self, data):

c:\development\data\_science\_competitions\drivendata\_floodwater\_v2\venv\lib\site-packages\yaml\representer.py in represent\_sequence(self, tag, sequence, flow\_style)  
90 best\_style = True  
91 for item in sequence:  
—\> 92 node\_item = self.represent\_data(item)  
93 if not (isinstance(node\_item, ScalarNode) and not node\_item.style):  
94 best\_style = False

c:\development\data\_science\_competitions\drivendata\_floodwater\_v2\venv\lib\site-packages\yaml\representer.py in represent\_data(self, data)  
50 for data\_type in data\_types:  
51 if data\_type in self.yaml\_multi\_representers:  
—\> 52 node = self.yaml\_multi\_representers[data\_type](self, data)  
53 break  
54 else:

c:\development\data\_science\_competitions\drivendata\_floodwater\_v2\venv\lib\site-packages\yaml\representer.py in represent\_object(self, data)  
329 if dictitems is not None:  
330 dictitems = dict(dictitems)  
–\> 331 if function. **name** == ‘ **newobj** ’:  
332 function = args[0]  
333 args = args[1:]

AttributeError: ‘functools.partial’ object has no attribute ‘ **name** ’

Thanks a bunch!

---

<div class="post-metadata">

**Author:** ![mansamusa](https://avatars.discourse-cdn.com/v4/letter/m/6de8d8/32.png) [@mansamusa](https://community.drivendata.org/u/mansamusa)\
**Post date:** [August 24, 2021, 4:32pm UTC](https://community.drivendata.org/t/error-while-fitting-model-in-benchmark/6441/2 "2021-08-24T16:32:08Z")

</div>

Hi, try setting your pandas version to 1.2.5, [details on the bug.](https://github.com/pandas-dev/pandas/issues/42748)
