spin icon indicating copy to clipboard operation
spin copied to clipboard

AttributeError: 'Timedelta' object has no attribute 'delta'

Open NonCover opened this issue 11 months ago • 8 comments

How can i fix this issue image

NonCover avatar Dec 25 '24 08:12 NonCover

did you get any solution? The problem is in the tsl module. I have raised a issue their also. Hopefully I will get a response their.

Mr-Nobody-dey avatar Dec 31 '24 06:12 Mr-Nobody-dey

That problem is solved by modifying the function to this " def datetime_encoded(self, units): units = ensure_list(units) # mapping = {un: pd.to_timedelta('1' + un).delta # for un in ['day', 'hour', 'minute', 'second', # 'millisecond', 'microsecond', 'nanosecond']} mapping = { 'day': pd.to_timedelta('1d').value, 'hour': pd.to_timedelta('1h').value, 'minute': pd.to_timedelta('1m').value, 'second': pd.to_timedelta('1s').value, 'millisecond': pd.to_timedelta('1ms').value, 'microsecond': pd.to_timedelta('1us').value, 'nanosecond': pd.to_timedelta('1ns').value }

    # mapping['week'] = pd.to_timedelta('1W').delta
    mapping['week'] = pd.to_timedelta('1W').value
    mapping['year'] = 365.2425 * 24 * 60 * 60 * 10 ** 9
    index_nano = self.index.view(np.int64)
    datetime = dict()
    for unit in units:
        if unit not in mapping:
            raise ValueError()
        nano_sec = index_nano * (2 * np.pi / mapping[unit])
        datetime[unit + '_sin'] = np.sin(nano_sec)
        datetime[unit + '_cos'] = np.cos(nano_sec)
    return pd.DataFrame(datetime, index=self.index, dtype=np.float32)"

Not sure if it will work, It runs without any error though.

Mr-Nobody-dey avatar Dec 31 '24 06:12 Mr-Nobody-dey

did you get any solution? The problem is in the tsl module. I have raised a issue their also. Hopefully I will get a response their.

Thanks for your reply very much! I found that pandas` version is 2.x.x, so I re-installed pandas v1.3.5, and then everything is okay.

NonCover avatar Dec 31 '24 08:12 NonCover

@NonCover Did you manage to run this model? I tried to Run it following my solution, I get gpu memory over utilization error. I have 24 GB GPU. How much memory does it need?

Mr-Nobody-dey avatar Jan 01 '25 06:01 Mr-Nobody-dey

@NonCover Also Can you share your requirement files?

Mr-Nobody-dey avatar Jan 01 '25 06:01 Mr-Nobody-dey

@NonCover Did you manage to run this model? I tried to Run it following my solution, I get gpu memory over utilization error. I have 24 GB GPU. How much memory does it need?

Logically speaking, using PL to run your model will optimize the space. There is a significant difference in memory usage when I run my model with PL and without it.

@NonCover Also Can you share your requirement files?

Perhaps my configuration file won't work for you, because I've modified a lot of the source code of tsl.

NonCover avatar Jan 02 '25 06:01 NonCover

I confirm that a pandas version < 1.4 fixes this problem. However, a versioned requirements file for this package - including all the dependencies - would be difficult to produce now.

We integrated SPIN in Torch Spatiotemporal from version 0.9.5. We suggest you use this implementation within tsl to solve all dependencies directly.

As also written in the paper, the original SPIN model may require high GPU memory. You can opt for the hierarchical version, which is more scalable with minimal sacrifice in accuracy.

marshka avatar Jan 02 '25 11:01 marshka

Thanks for your reply. Will look into it.

Mr-Nobody-dey avatar Jan 03 '25 10:01 Mr-Nobody-dey