我正在尝试准备my.CSV文件以进行深度学习。目前,我正在尝试从CSV文件读取数据。但是出现了一个无法理解的错误。
import tensorflow as tf
tf.enable_eager_execution()
csv_path = "/Users/dean/Desktop/AI TECNOMATIX EXCEL/cartest1.csv"
def DESAI_map(name, platform, year):
return {'MachineAvailability': MA, "MachineEntranceLocked": MEnL, "MachineExitLocked": MExL, "MachineMTTR": MTTR, "StatNumIn": SNI, "StatNumOut": SNO}
DESAI_dataset = tf.data.experimental.CsvDataset(
filenames=csv_path,
record_defaults=[tf.Variable,tf.string, tf.string, tf.Variable,tf.Variable,tf.Variable([1900], dtype=tf.int32)],
select_cols=[1, 2, 3,4,5,6],
field_delim=",",
header=True)
DESAI_dataset = DESAI_dataset.filter(lambda MA:MA<=99, MEnL, MExL,MTTR,SNI,SNO)
DESAI_dataset = DESAI_dataset.map(map_func=DESAI_map)
DESAI_dataset = DESAI_dataset.batch(1)
for data in DESAI_dataset:
tf.print(data) # Print : {'Name': [Wii Sports], 'Platform': [Wii], 'Year': [2006]}
break
ValueError: Attempt to convert a value (<class 'tensorflow.python.ops.variables.VariableV1'>) with an unsupported type (<class 'tensorflow.python.ops.variables.VariableMetaclass'>) to a Tensor.
name,MachineAvailability,MachineEntranceLocked,MachineExitLocked,MachineMTTR,StatNumIn,StatNumOut
XX,100,FALSE,FALSE,0,0,0
XY,100,FALSE,FALSE,0,0,0
XX,100,FALSE,FALSE,0,2,2
XX,100,FALSE,FALSE,0,2,2
ValueError Traceback(最近一次呼叫最后一次)在13 select_cols = [1、2、3、4、5、6],14 field_delim =“,”,---> 15 header = True中)16 17 DESAI_dataset = DESAI_dataset .filter(lambda MA:MA <= 99,MEnL,MExL,MTTR,SNI,SNO)
ValueError:尝试将类型()不支持的值()转换为张量。
任何帮助表示赞赏。
谢谢
答案 0 :(得分:0)
遇到的错误是由定义数据集读取器的方式引起的。正确的定义方法是
DESAI_dataset = tf.data.experimental.CsvDataset(
filenames=csv_path,
record_defaults=[0,"False", "False", 0, 0, 0],
select_cols=[1, 2, 3,4,5,6],
field_delim=",",
header=True)
拥有record_default
的想法是,如果某些数据已损坏(或由于某种原因而无法读取),它将被record_defaults
中的内容替换。因此,将tf.Variable
作为记录默认值是没有意义的,因为需要成为Tensors
或只是普通的python值。您可以在official docs中阅读有关record_defaults
接受的内容。
现在,我注释了以下几行,因为您尚未共享某些变量(例如MA,MEnL等)。但是我会根据需要更新答案。
DESAI_dataset = DESAI_dataset.filter(lambda MA:MA<=99, MEnL, MExL,MTTR,SNI,SNO)
DESAI_dataset = DESAI_dataset.map(map_func=DESAI_map)