Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Tensorflow 调试';TypeError:无法将数据数组转换为张量或运算';美国有线电视新闻网_Tensorflow_Neural Network_Conv Neural Network - Fatal编程技术网

Tensorflow 调试';TypeError:无法将数据数组转换为张量或运算';美国有线电视新闻网

Tensorflow 调试';TypeError:无法将数据数组转换为张量或运算';美国有线电视新闻网,tensorflow,neural-network,conv-neural-network,Tensorflow,Neural Network,Conv Neural Network,我正在尝试建立一个CNN,我在输入样本中有8个类,每个类中有45个样本。所以输入样本的总数是360。我已将前20个样本划分为训练样本,其余25个样本作为每个类的测试样本(我的输入是一个文本文件,行中的数据是我的预处理数据,因此我正在读取文本文件中的行,并重塑16x12大小的图像) 我无法修复代码中的错误 我的代码: import numpy as np import random import tensorflow as tf folder = 'D:\\Lab_Project_Files\\T

我正在尝试建立一个CNN,我在输入样本中有8个类,每个类中有45个样本。所以输入样本的总数是360。我已将前20个样本划分为训练样本,其余25个样本作为每个类的测试样本(我的输入是一个文本文件,行中的数据是我的预处理数据,因此我正在读取文本文件中的行,并重塑16x12大小的图像)

我无法修复代码中的错误

我的代码:

import numpy as np
import random
import tensorflow as tf
folder = 'D:\\Lab_Project_Files\\TF\\Practice Files\\'
Datainfo = 'dataset_300.txt'
ClassInfo = 'classTrain.txt'

INPUT_WIDTH  = 16
IMAGE_HEIGHT = 12
IMAGE_DEPTH  = 1
IMAGE_PIXELS = INPUT_WIDTH * IMAGE_HEIGHT # 192 = 12*16
NUM_CLASSES  = 8
STEPS         = 500
STEP_VALIDATE = 100
BATCH_SIZE    = 5

def load_data(file1,file2,folder):
    filename1 = folder + file1
    filename2 = folder + file2
    # loading the data file
    x_data = np.loadtxt(filename1, unpack=True)
    x_data = np.transpose(x_data)
    # loading the class information of the data loaded
    y_data = np.loadtxt(filename2, unpack=True)
    y_data = np.transpose(y_data)
    # divide the data in to test and train data
    x_data_train = x_data[np.r_[0:20, 45:65, 90:110, 135:155, 180:200, 225:245, 270:290, 315:335],:]
    x_data_test  = x_data[np.r_[20:45, 65:90, 110:135, 155:180, 200:225, 245:270, 290:315, 335:360], :]
    y_data_train = y_data[np.r_[0:20, 45:65, 90:110, 135:155, 180:200, 225:245, 270:290,  315:335]]
    y_data_test  = y_data[np.r_[20:45, 65:90, 110:135, 155:180, 200:225, 245:270, 290:315, 335:360],:]
    return x_data_train,x_data_test,y_data_train,y_data_test

def reshapedata(data_train,data_test):
    data_train  = np.reshape(data_train, (len(data_train),INPUT_WIDTH,IMAGE_HEIGHT))
    data_test   = np.reshape(data_test,  (len(data_test), INPUT_WIDTH, IMAGE_HEIGHT))
    return data_train,data_test

def batchdata(data,label, batchsize):
    # generate random number required to batch data
    order_num = random.sample(range(1, len(data)), batchsize)
    data_batch = []
    label_batch = []
    for i in range(len(order_num)):
        data_batch.append(data[order_num[i-1]])
        label_batch.append(label[order_num[i-1]])
    return data_batch, label_batch

# CNN trail
def conv_net(x):
    weights = tf.Variable(tf.random_normal([INPUT_WIDTH * IMAGE_HEIGHT * IMAGE_DEPTH, NUM_CLASSES]))
    biases = tf.Variable(tf.random_normal([NUM_CLASSES]))
    out = tf.add(tf.matmul(x, weights), biases)
    return out

sess = tf.Session()
# get filelist and labels for training and testing
data_train,data_test,label_train,label_test =         load_data(Datainfo,ClassInfo,folder)
data_train, data_test, = reshapedata(data_train, data_test)

############################ get files for training ####################################################
image_batch, label_batch = batchdata(data_train,label_train,BATCH_SIZE)
# input output placeholders
x = tf.placeholder(tf.float32, [None, IMAGE_PIXELS])
y_ = tf.placeholder(tf.float32,[None, NUM_CLASSES])
# create the network
y = conv_net( x )
# loss
cost = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(y, y_))
# train step
train_step   = tf.train.AdamOptimizer( 1e-3 ).minimize( cost )

############################## get files for validataion ###################################################
image_batch_test, label_batch_test = batchdata(data_test,label_test,BATCH_SIZE)

correct_prediction = tf.equal(tf.argmax(y,1), tf.argmax(y_,1))
accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32))

sess.run(tf.initialize_all_variables())

################ CNN Program ##############################

for i in range(STEPS):
        # checking the accuracy in between.
        if i % STEP_VALIDATE == 0:
            imgs, lbls = sess.run([image_batch_test, label_batch_test])
            print(sess.run(accuracy, feed_dict={x: imgs, y_: lbls}))

        imgs, lbls = sess.run([image_batch, label_batch])
        sess.run(train_step, feed_dict={x: imgs, y_: lbls})

imgs, lbls = sess.run([image_batch_test, label_batch_test])
print(sess.run(accuracy, feed_dict={ x: imgs, y_: lbls}))


文件可以下载,Session.run只接受张量或张量名称的列表

imgs, lbls = sess.run([image_batch_test, label_batch_test])
在前一行中,您正在通过
image\u batch\u test
label\u batch\u test
,这两个数组都是numpy数组。我不确定您试图通过
imgs,lbls=sess.run([image\u batch\u test,label\u batch\u test])