简体   繁体   中英

How can I have a series of numpy ndarrays as the input data to train a tensorflow machine learning model?

I am trying to build a machine learning model which predicts a single number from a series of numbers. I am using a Sequential model from the keras API of Tensorflow.

Basically my x data is a Pandas series which contains numpy ndarrays, which contain floats. My y data is a series of numpy ndarrays of shape (1,1), so basically just a single float value.

You can imagine my dataset to look something like this:

Index x data (pandas series) y data (pandas series)
0 np.ndarray(shape (1209278,) ) np.ndarray(shape = () )
1 np.ndarray(shape (1211140,) ) np.ndarray(shape = () )
2 np.ndarray(shape (1418411,) ) np.ndarray(shape = () )
3 np.ndarray(shape (1077132,) ) np.ndarray(shape = () )
... ... ...

The type of my x data and y data is, as stated above, a pandas series. When I try to train my model using the fit function it yields this error:

ValueError: Failed to convert a NumPy array to a Tensor (Unsupported object type numpy.ndarray)

I also tried converting the pandas series to a numpy array, but this did not help. As it seems, the fact that I have a series of differently shaped ndarrays as my input data is the problem itself.

I don't really know what I can do, to fix this error. Which leads me to my question:

How can I have a series of numpy ndarrays as the input data to train a tensorflow machine learning model?

Pandas Data Series does not support a direct conversion to tensors. So I would try first to convert those to list :

X = X.to_list()
Y = Y.to_list()

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM