Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
NonCover opened this issue Dec 25, 2024 · 8 comments
Open

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

NonCover opened this issue Dec 25, 2024 · 8 comments

Comments

@NonCover
Copy link

How can i fix this issue
image

@Mr-Nobody-dey
Copy link

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
Copy link

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.

@NonCover
Copy link
Author

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.

@Mr-Nobody-dey
Copy link

Mr-Nobody-dey commented Jan 1, 2025

@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
Copy link

@NonCover Also Can you share your requirement files?

@NonCover
Copy link
Author

NonCover commented Jan 2, 2025

@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.

@marshka
Copy link
Member

marshka commented Jan 2, 2025

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.

@Mr-Nobody-dey
Copy link

Thanks for your reply. Will look into it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants