Python 3.x 对于给定的数据集,我无法编译和匹配占位符。这会导致一个错误
我被要求为给定的数据集生成CNN输出。 错误是Python 3.x 对于给定的数据集,我无法编译和匹配占位符。这会导致一个错误,python-3.x,conv-neural-network,data-science,Python 3.x,Conv Neural Network,Data Science,我被要求为给定的数据集生成CNN输出。 错误是 ValueError:无法为具有形状“(?,60,11,1)”的张量“占位符_4:0”输入形状(16,10)的值 数据集包括在下面 Att1 Att2 Att3 Att4 Att5 Att6 Att7 Att8 Att9 Att10 Att11 1 0 1 0.9471 C 0 S 0.8561 0.002 0.004 1.8091 1 0 1
ValueError:无法为具有形状“(?,60,11,1)”的张量“占位符_4:0”输入形状(16,10)的值
数据集包括在下面
Att1 Att2 Att3 Att4 Att5 Att6 Att7 Att8 Att9 Att10 Att11
1 0 1 0.9471 C 0 S 0.8561 0.002 0.004 1.8091
1 0 1 0.992 C 0 S 0.8648 0.002 0.003 1.861
1 0 1 1.0722 C 0 S 2.009 0.002 0.003 3.0876
1 0 1 0.994 C 0 S 0.8754 0.002 0.003 1.8744
1 0 1 1.0121 C 0 S 0.9275 0.002 0.003 1.9447
1 0 1 0.9825 C 0 S 0.9579 0.002 0.003 1.9455
1 0 1 0.7372 C 0 S 0.8699 0.002 0.003 1.6122
1 0 1 0.9533 C 0 S 0.8377 0.002 0.004 1.797
1 0 1 0.9813 C 0 S 0.8647 0.002 0.003 1.8511
1 0 1 0.9693 C 0 S 0.8664 0.001 0.003 1.8402
1 0.0005 1 0.9652 C 0 S 0.8625 0.002 0.003 1.8317
1 0 1 1.0564 C 0 S 0.8796 0.002 0.003 1.941
1 0 1 0.9562 C 0 S 0.8503 0.002 0.003 1.8115
1 0 1 0.9581 C 0 S 0.8491 0.002 0.003 1.8113
1 0 1 0.9919 C 0 S 0.9162 0.0015 0.025 1.9121
1 0 1 0.9443 C 0 S 0.8479 0.002 0.003 1.7973
1 0 1 0.7454 C 0 S 0.8722 0.002 0.003 1.6225
1 0 1 0.9979 C 0 S 1.0774 0.002 0.003 2.0803
1 0 1 0.7275 C 0 S 0.9696 0.0014 0.0025 1.7012
1 0 1 1.089 C 0 S 1.9643 0.0015 0.0025 3.0573
2 0.0005 1 0.9699 C 0 S 0 0.002 0.004 1.8268
2 0 1 0.7045 C 0 S 0 0.0015 0.0029 1.5466
2 0 1 0.9584 C 0 S 0 0.002 0.00298 1.8052
22 0 1 0.744 C 0 S 0 0.0015 0.0025 1.598
2 0 1 0.744 C 0 S 0 0.0015 0.0025 1.598
2 0 1 0.7379 C 0 S 0 0.0019 0.003 1.5926
2 0 1 0.756 C 0 S 0 0.0019 0.003 1.6523
2 0 1 0.737 C 0 S 0 0.002 0.0029 1.7028
2 0 1 0.707 C 0 S 0 0.0015 0.0025 4.249
2 0 1 0.7127 C 0 S 0 0.001 0.003 1.5867
2 0 1 0.7177 C 0 S 0 0.002 0.003 1.5921
2 0 1 0.7299 C 0 S 0 0.002 0.003 1.5706
2 0 1 0.7549 C 0 S 0 0.0014 0.003 1.5835
2 0 1 0.6954 C 0 S 0 0.0019 0.003 1.5239
2 0 1 0.7131 C 0 S 0 0.0019 0.003 1.5401
2 0 1 0.712 C 0 S 0 0.0014 0.0025 1.525
2 0 1 0.7074 C 0 S 0 0.002 0.003 1.5304
2 0 1 0.7382 C 0 S 0 0.002 0.0029 1.5704
2 0 1 0.7052 C 0 S 0 0.0019 0.003 1.5693
2 0 1 0.7178 C 0 S 0 0.002 0.003 1.5438
3 0 1 0.9599 C 0 S 1.2939 0.0015 0.003 2.2583
3 0 1 0.957 C 0 S 0 0.0019 0.003 0.9619
3 0 1 1.0089 C 0 S 0.9696 0.0015 0.0025 1.9825
3 0 1 0.7337 C 0 S 0.99 0.002 0.003 1.7287
3 0 1 0.7238 C 0 S 0.9761 0.001 0.003 1.7042
3 0 1 0.9554 C 0 S 0.9685 0.0019 0.003 1.9299
3 0 1 0.7128 C 0 S 0.821 0.002 0.003 1.539
3 0 1 0.7562 C 0 S 1.0262 0.0019 0.003 1.7875
3 0 1 0.7617 C 0 S 0.9947 0.002 0.004 1.7625
3 0 1 0.7543 C 0 S 0.9934 0.002 0.003 1.7527
3 0 1 0.7243 C 0 S 0.9709 0.002 0.003 1.7003
3 0 1 0.7157 C 0 S 1 0.002 0.003 1.7208
3 0 1 0.7075 C 0 S 0.9861 0.0015 0.0025 1.6977
3 0 1 0.7418 C 0 S 0.9477 0.0019 0.003 1.6946
3 0 1 0.701 C 0 S 0.9645 0.0015 0.0025 1.6695
3 0 1 0.7443 C 0 S 1.0016 0.002 0.003 1.751
3 0 1 0.7101 C 0 S 0.9661 0.002 0.003 1.6813
3 0 1 0.706 C 0 S 0.9734 0.002 0.003 1.6845
3 0 1 0.713 C 0 S 0.9791 0.0015 0.0025 1.6962
3 0 1 0.7085 C 0 S 0.9968 0.0015 0.0025 1.7104
我的作业放在下面。最后一部分,即tf.Session()部分产生了一个名为“无法将字符串转换为浮点:'C'”的错误。任何关于这个错误原因的帮助都会帮助我更好地理解
先谢谢你
将tensorflow导入为tf
作为pd进口熊猫
将numpy作为np导入
将matplotlib.pyplot作为plt导入
从sklearn导入线性_模型
从sklearn.preprocessing导入OneHotEncoder
从sklearn.model\u选择导入列车\u测试\u拆分
导入操作系统
操作系统环境[“CUDA_可见设备”]=“0”
df=pd.read_excel(r“C:/Users/ggmah/Desktop/HMM Data updated.xlsx”)
tf.logging.set_详细性(tf.logging.INFO)
dff=一个热编码器(df)
dfg=pd.get_假人(df)
#df.head()
#dff
#dfg
o=列表(df.columns.values)
label_dict=dict()
对于i,枚举中的值(o):
label_dict[i]=值
#标签
#len(标签)
培训费用=220
学习率=0.002
批量大小=16
n_输入=59
n_类=11
x=tf.占位符(“float”,[None,60,11,1])
y=tf.placeholder(“float”,[None,n_类])
def conv2d(x,W,b,步幅=1):
#Conv2D包装,带有偏置和relu激活
#x:输入变量
#W:重量fn
#b:偏见
x=tf.nn.conv2d(x,W,步幅=[1,步幅,步幅,1],padding='SAME')
x=tf.nn.bias_add(x,b)
返回tf.nn.relu(x)
def maxpool2d(x,k=2):
返回tf.nn.max_pool(x,ksize=[1,k,k,1],步长=[1,k,k,1],padding='SAME')
权重={
“wc1”:tf.get_变量('W0',shape=(3,3,1,32),初始值设定项=tf.contrib.layers.xavier_初始值设定项()),
“wc2”:tf.get_变量('W1',shape=(3,3,32,64),初始值设定项=tf.contrib.layers.xavier_初始值设定项()),
“wc3”:tf.get_变量('W2',shape=(3,3,64128),初始值设定项=tf.contrib.layers.xavier_初始值设定项()),
“wd1”:tf.get_变量('W3',shape=(4*4*128128),初始值设定项=tf.contrib.layers.xavier_初始值设定项()),
'out':tf.get_变量('W6',shape=(128,n_类),初始值设定项=tf.contrib.layers.xavier_初始值设定项()),
}
偏差={
“bc1”:tf.get_变量('B0',shape=(32),初始值设定项=tf.contrib.layers.xavier_初始值设定项()),
“bc2”:tf.get_变量('B1',shape=(64),初始值设定项=tf.contrib.layers.xavier_初始值设定项()),
“bc3”:tf.get_变量('B2',shape=(128),初始值设定项=tf.contrib.layers.xavier_初始值设定项()),
“bd1”:tf.get_变量('B3',shape=(128),初始值设定项=tf.contrib.layers.xavier_初始值设定项()),
'out':tf.get_变量('B4',shape=(11),初始值设定项=tf.contrib.layers.xavier_初始值设定项()),
}
#从tensorflow.examples.tutorials.mnist导入输入数据
#数据=输入数据。读取数据集('data/fashion',one\u hot=True)
X=dfg[['Att1'、'Att2'、'Att3'、'Att4',
“附件五”,
“附件6”,
“附件七”,
“附件8”、“附件9”、“附件10”]]
Y=dfg[['Att11']]
列车X、试验列车X、试验列车y、试验列车y=列车试验列车分割(X、y、列车尺寸=0.88,随机状态=5)
def conv_净值(x、重量、偏差):
#这里我们调用上面定义的conv2d函数,并传递输入图像x、权重wc1和偏差bc1。
conv1=conv2d(x,权重['wc1'],偏差['bc1'])
#最大池(下采样),从2*2矩阵窗口选择最大值并输出14*14矩阵。
conv1=maxpool2d(conv1,k=2)
#卷积层
#这里我们调用上面定义的conv2d函数,并传递输入图像x、权重wc2和偏差bc2。
conv2=conv2d(conv1,权重['wc2'],偏差['bc2'])
#最大池(下采样),从2*2矩阵窗口选择最大值并输出7*7矩阵。
conv2=maxpool2d(conv2,k=2)
conv3=conv2d(conv2,权重['wc3'],偏差['bc3'])
#最大池(下采样),从2*2矩阵窗口选择最大值并输出4*4。
conv3=maxpool2d(conv3,k=2)
#全连通层
#重塑conv2输出以适应完全连接的图层输入
fc1=tf.reforme(conv3,[-1,权重['wd1'])。get_shape()。as_list()[0]])
fc1=tf.add(tf.matmul(fc1,权重['wd1']),偏差['bd1']))
fc1=tf.nn.relu(fc1)
#输出,类预测
#最后,我们将完全连接的层与权重相乘,并添加一个偏差项。
out=tf.add(tf.matmul(fc1,权重['out']),偏差['out']))
返回
pred=转换净值(x、权重、偏差)
成本=tf.reduce\u均值(tf.nn.softmax\u交叉\u熵\u与logits(logits=pred,labels=y))
优化器=tf.train.AdamOptimizer(学习率=学习率)。最小化(成本)
#这里检查预测图像的最大值的索引是否等于实际标记图像。及
#两者都将是列向量。
正确的预测=tf.equal(tf.argmax(pred,1),tf.argmax(y,1))
#计算所有给定图像的精度,并将其平均。
准确度=tf.reduce_平均值(tf.cast(正确的预测,tf.float32))
init=tf.global_variables_initializer()
使用tf.Session()作为sess:
sess.run(初始化)
列车损失=[]
测试损耗=[]
列车精度=[]
测试精度=[]
summary_writer=tf.summary.FileWriter('./Output',sess.graph)
对于范围内的i(培训):
对于范围内的批次(len(train\u X)//批次大小):
批次x=列x[批次*批次尺寸:最小((批次+1)*批次尺寸,长度(列x))]
批次y=序列y[批次*批次大小:最小((批次+1)*批次大小,长度(序列y))]
#运行优化操作(backprop)。
#计算批次损失和准确度
opt=sess.run(优化器,feed_dict={x:batch_x,
y:批(y})
损耗,acc=sess.run([成本,精度],进料量={x:batch\u x,
y:批(y})
打印(“Iter”+str(i)+”,丢失=“+\
X = df[['Att1','Att2','Att3','Att4','Att5','Att6','Att7','Att8','Att9','Att10']]
Y = df[['Att11']]
X = dfg[['Att1','Att2','Att3','Att4',
'Att5_C', # Note column name change
'Att6',
'Att7_S', # Note column name change
'Att8','Att9','Att10']]
Y = dfg[['Att11']]