繁体   English   中英

张量流中的输入管道

[英]input pipeline in tensorflow

在针对初学者使用正式的tensorflow mnist数据集教程进行练习时,我正在尝试将mnist数据更改为我自己从搜索引擎收集的图像。

strFilePaths,iLabels ,strSubFolderNames,iNumTotalDatasets = ScanForImage('Datasets')

tsFileNameQueue = tf.train.string_input_producer(strFilePaths)
tsReader = tf.WholeFileReader()
_,tsImage = tsReader.read(tsFileNameQueue)

tsImage = tf.image.decode_jpeg(tsImage, channels=3)
tsImage = tf.cast(tsImage,tf.float32)
tsLabels = tf.convert_to_tensor(iLabels, dtype=tf.float32)
tsImage = tf.reshape(tsImage, shape=[1,168*300*3])

matWeights = tf.Variable(tf.random_normal([168*300*3, 2]))
vBiases = tf.Variable(tf.zeros([2]))
vPredictions = tf.nn.softmax(tf.matmul(tsImage, matWeights) + vBiases)
fCrossEntropy = tf.reduce_mean(-tf.reduce_sum(tsLabels * tf.log(vPredictions), reduction_indices=[1]))
train_step = tf.train.GradientDescentOptimizer(0.1).minimize(fCrossEntropy)
init = tf.global_variables_initializer()

with tf.Session() as sess : 
    sess.run(init)
    for i in range (1000) : 
    tsTrainingSets = tf.train.batch([tsImage,tsLabels], batch_size=100)
    sess.run(train_step)
        if i % 20 == 0 : 
            correct_prediction = tf.equal(tf.argmax(vPredictions,1),tf.argmax(tsTrainingSets[1],1))
            accuracy = tf.reduce_mean(tf.cast(correct_prediction,tf.float32))
            print(sess.run(accuracy))

那strFilePaths是一个包含我所有图像路径的标准python列表,iLabels是一个代表标签的列表的列表。 在这种情况下,我只有2个班级。

该程序运行时没有错误输出,但是tensorflow一直在运行,并且没有任何输出。 我已经在Tensorflow网站上阅读了大约一千次的“读取文件”会话,但是我仍然不知道自己是否做对了。

问题1:这段代码有什么问题? Q2:关于如何将jpeg文件读入tensorflow并对其执行一些训练任务,是否有完整的示例?

不幸的是,如果无法访问您的代码和文件,我将无法帮助您进一步调试。 但是,您可以在image_retraining示例中看到有关如何重新训练Inception以识别新类别的信息(例如花朵)的完整示例, 网址为: https : //github.com/tensorflow/tensorflow/blob/r1.1/tensorflow/examples /image_retraining/retrain.py

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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