如何解决如何修复此错误“无法将numpy数组转换为张量”
我正在使用张量流(如年龄,性别等(总共6个值))制作张量流的保险费用预测器(给出单个输出,这是一个浮动)。 这是代码
import tensorflow as tf
import numpy as np
from tensorflow import keras
import pandas as pd
a=0
file=pd.read_csv(r"""C:\Users\lavni\OneDrive\Desktop\proj.csv""",sep=',',index_col=False)
Data = file[['age','sex','bmi','children','smoker','region']].to_numpy()
Charges=file[['charges']].to_numpy()
model = keras.Sequential()
model.add(keras.layers.Dense(units=6,input_shape=(6,)))
model.compile(optimizer='sgd',loss='mean_squared_error')
model.fit(Data,Charges)
File "C:\Users\lavni\AppData\Local\Programs\Python\python37\ML.py",line 14,in <module>
model.fit(Data,Charges)
File "C:\Users\lavni\AppData\Local\Programs\Python\python37\lib\site-packages\tensorflow\python\keras\engine\training.py",line 108,in _method_wrapper
return method(self,*args,**kwargs)
File "C:\Users\lavni\AppData\Local\Programs\Python\python37\lib\site-packages\tensorflow\python\keras\engine\training.py",line 1063,in fit
steps_per_execution=self._steps_per_execution)
File "C:\Users\lavni\AppData\Local\Programs\Python\python37\lib\site-packages\tensorflow\python\keras\engine\data_adapter.py",line 1117,in __init__
model=model)
File "C:\Users\lavni\AppData\Local\Programs\Python\python37\lib\site-packages\tensorflow\python\keras\engine\data_adapter.py",line 265,in __init__
x,y,sample_weights = _process_tensorlike((x,sample_weights))
File "C:\Users\lavni\AppData\Local\Programs\Python\python37\lib\site-packages\tensorflow\python\keras\engine\data_adapter.py",line 1021,in _process_tensorlike
inputs = nest.map_structure(_convert_numpy_and_scipy,inputs)
File "C:\Users\lavni\AppData\Local\Programs\Python\python37\lib\site-packages\tensorflow\python\util\nest.py",line 635,in map_structure
structure[0],[func(*x) for x in entries],File "C:\Users\lavni\AppData\Local\Programs\Python\python37\lib\site-packages\tensorflow\python\util\nest.py",in <listcomp>
structure[0],File "C:\Users\lavni\AppData\Local\Programs\Python\python37\lib\site-packages\tensorflow\python\keras\engine\data_adapter.py",line 1016,in _convert_numpy_and_scipy
return ops.convert_to_tensor(x,dtype=dtype)
File "C:\Users\lavni\AppData\Local\Programs\Python\python37\lib\site-packages\tensorflow\python\framework\ops.py",line 1499,in convert_to_tensor
ret = conversion_func(value,dtype=dtype,name=name,as_ref=as_ref)
File "C:\Users\lavni\AppData\Local\Programs\Python\python37\lib\site-packages\tensorflow\python\framework\tensor_conversion_registry.py",line 52,in _default_conversion_function
return constant_op.constant(value,dtype,name=name)
File "C:\Users\lavni\AppData\Local\Programs\Python\python37\lib\site-packages\tensorflow\python\framework\constant_op.py",line 264,in constant
allow_broadcast=True)
File "C:\Users\lavni\AppData\Local\Programs\Python\python37\lib\site-packages\tensorflow\python\framework\constant_op.py",line 275,in _constant_impl
return _constant_eager_impl(ctx,value,shape,verify_shape)
File "C:\Users\lavni\AppData\Local\Programs\Python\python37\lib\site-packages\tensorflow\python\framework\constant_op.py",line 300,in _constant_eager_impl
t = convert_to_eager_tensor(value,ctx,dtype)
File "C:\Users\lavni\AppData\Local\Programs\Python\python37\lib\site-packages\tensorflow\python\framework\constant_op.py",line 98,in convert_to_eager_tensor
return ops.EagerTensor(value,ctx.device_name,dtype)
ValueError: Failed to convert a NumPy array to a Tensor (Unsupported object type int).
我们将不胜感激,谢谢您。
解决方法
Charges = np.array([file.loc[:,'charges']])
这可能解决了您的问题。首先,使用loc
方法过滤数据帧。之后,将其转换为numpy数组。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。