Tensorflow用自己的图片做数据集做识别,无法feed数据,跪求大神帮助! 20C

使用tensorflow识别我自己的tfrecord文件时,在训练时无法feed数据,错误是placeholder那里,下面给出错误和我的代码,跪求大神帮助!!!
错误:

 Traceback (most recent call last):
  File "/Users/hanjiarong/PycharmProjects/sample5/main.py", line 206, in <module>
    session.run(opti, feed_dict={x: session.run(batch_image), y: session.run(batch_label), keep_drop: dropout})
  File "/anaconda3/envs/tensorflow/lib/python3.6/site-packages/tensorflow/python/client/session.py", line 905, in run
    run_metadata_ptr)
  File "/anaconda3/envs/tensorflow/lib/python3.6/site-packages/tensorflow/python/client/session.py", line 1113, in _run
    str(subfeed_t.get_shape())))
ValueError: Cannot feed value of shape (1, 227, 227, 3) for Tensor 'Placeholder:0', which has shape '(154587, ?)'

下面是我的代码:

 import tensorflow as tf
from encode_to_tfrecords import create_record, create_test_record,  read_and_decode, get_batch, get_test_batch

n_input = 154587
n_classes = 3
dropout = 0.5
x = tf.placeholder(tf.float32, [None, n_input])
y = tf.placeholder(tf.int32, [None, n_classes])
keep_drop = tf.placeholder(tf.float32)

class network(object):

    def inference(self, images,keep_drop):
    ####################################################################################################################
        # 向量转为矩阵

        #  images = tf.reshape(images, shape=[-1, 39,39, 3])

        images = tf.reshape(images, shape=[-1, 227, 227, 3])  # [batch, in_height, in_width, in_channels]

        images = (tf.cast(images, tf.float32) / 255. - 0.5) * 2  # 归一化处理
    ####################################################################################################################

        # 第一层  定义卷积偏置和下采样

        conv1 = tf.nn.bias_add(tf.nn.conv2d(images, self.weights['conv1'], strides=[1, 4, 4, 1], padding='VALID'),
                               self.biases['conv1'])

        relu1 = tf.nn.relu(conv1)

        pool1 = tf.nn.max_pool(relu1, ksize=[1, 3, 3, 1], strides=[1, 2, 2, 1], padding='VALID')

        # 第二层

        conv2 = tf.nn.bias_add(tf.nn.conv2d(pool1, self.weights['conv2'], strides=[1, 1, 1, 1], padding='SAME'),
                               self.biases['conv2'])

        relu2 = tf.nn.relu(conv2)

        pool2 = tf.nn.max_pool(relu2, ksize=[1, 3, 3, 1], strides=[1, 2, 2, 1], padding='VALID')

        # 第三层

        conv3 = tf.nn.bias_add(tf.nn.conv2d(pool2, self.weights['conv3'], strides=[1, 1, 1, 1], padding='SAME'),
                               self.biases['conv3'])

        relu3 = tf.nn.relu(conv3)

        #  pool3=tf.nn.max_pool(relu3, ksize=[1, 2, 2, 1], strides=[1, 2, 2, 1], padding='VALID')

        conv4 = tf.nn.bias_add(tf.nn.conv2d(relu3, self.weights['conv4'], strides=[1, 1, 1, 1], padding='SAME'),
                               self.biases['conv4'])

        relu4 = tf.nn.relu(conv4)

        conv5 = tf.nn.bias_add(tf.nn.conv2d(relu4, self.weights['conv5'], strides=[1, 1, 1, 1], padding='SAME'),
                               self.biases['conv5'])

        relu5 = tf.nn.relu(conv5)

        pool5 = tf.nn.max_pool(relu5, ksize=[1, 3, 3, 1], strides=[1, 2, 2, 1], padding='VALID')

        # 全连接层1,先把特征图转为向量

        flatten = tf.reshape(pool5, [-1, self.weights['fc1'].get_shape().as_list()[0]])
        # dropout比率选用0.5

        drop1 = tf.nn.dropout(flatten, keep_drop)

        fc1 = tf.matmul(drop1, self.weights['fc1']) + self.biases['fc1']

        fc_relu1 = tf.nn.relu(fc1)

        fc2 = tf.matmul(fc_relu1, self.weights['fc2']) + self.biases['fc2']

        fc_relu2 = tf.nn.relu(fc2)

        fc3 = tf.matmul(fc_relu2, self.weights['fc3']) + self.biases['fc3']

        return fc3

    def __init__(self):
        # 初始化权值和偏置

        with tf.variable_scope("weights"):
            self.weights = {

                # 39*39*3->36*36*20->18*18*20

                'conv1': tf.get_variable('conv1', [11, 11, 3, 96],
                                         initializer=tf.contrib.layers.xavier_initializer_conv2d()),

                # 18*18*20->16*16*40->8*8*40

                'conv2': tf.get_variable('conv2', [5, 5, 96, 256],
                                         initializer=tf.contrib.layers.xavier_initializer_conv2d()),

                # 8*8*40->6*6*60->3*3*60

                'conv3': tf.get_variable('conv3', [3, 3, 256, 384],
                                         initializer=tf.contrib.layers.xavier_initializer_conv2d()),

                # 3*3*60->120

                'conv4': tf.get_variable('conv4', [3, 3, 384, 384],
                                         initializer=tf.contrib.layers.xavier_initializer_conv2d()),

                'conv5': tf.get_variable('conv5', [3, 3, 384, 256],
                                         initializer=tf.contrib.layers.xavier_initializer_conv2d()),

                'fc1': tf.get_variable('fc1', [6 * 6 * 256, 4096], initializer=tf.contrib.layers.xavier_initializer()),

                'fc2': tf.get_variable('fc2', [4096, 4096], initializer=tf.contrib.layers.xavier_initializer()),

                'fc3': tf.get_variable('fc3', [4096, 1000], initializer=tf.contrib.layers.xavier_initializer()),

            }

        with tf.variable_scope("biases"):
            self.biases = {

                'conv1': tf.get_variable('conv1', [96, ],
                                         initializer=tf.constant_initializer(value=0.1, dtype=tf.float32)),

                'conv2': tf.get_variable('conv2', [256, ],
                                         initializer=tf.constant_initializer(value=0.1, dtype=tf.float32)),

                'conv3': tf.get_variable('conv3', [384, ],
                                         initializer=tf.constant_initializer(value=0.1, dtype=tf.float32)),

                'conv4': tf.get_variable('conv4', [384, ],
                                         initializer=tf.constant_initializer(value=0.1, dtype=tf.float32)),

                'conv5': tf.get_variable('conv5', [256, ],
                                         initializer=tf.constant_initializer(value=0.1, dtype=tf.float32)),

                'fc1': tf.get_variable('fc1', [4096, ],
                                       initializer=tf.constant_initializer(value=0.1, dtype=tf.float32)),

                'fc2': tf.get_variable('fc2', [4096, ],
                                       initializer=tf.constant_initializer(value=0.1, dtype=tf.float32)),

                'fc3': tf.get_variable('fc3', [1000, ], initializer=tf.constant_initializer(value=0.1, dtype=tf.float32))

            }

    # 计算softmax交叉熵损失函数

    def sorfmax_loss(self, predicts, labels):
        predicts = tf.nn.softmax(predicts)

        labels = tf.one_hot(labels, self.weights['fc3'].get_shape().as_list()[1])

        loss = tf.nn.softmax_cross_entropy_with_logits(logits=predicts, labels=labels)

        #  loss =-tf.reduce_mean(labels * tf.log(predicts))# tf.nn.softmax_cross_entropy_with_logits(predicts, labels)

        self.cost = loss

        return self.cost

        # 梯度下降

    def optimer(self, loss, lr=0.01):
        train_optimizer = tf.train.GradientDescentOptimizer(lr).minimize(loss)

        return train_optimizer

        #定义训练
    # def train(self):
create_record('/Users/hanjiarong/Documents/testdata/tfrtrain')
# image, label = read_and_decode('train.tfrecords')
# batch_image, batch_label = get_batch(image, label, 30)

#连接网络 网络训练
net = network()
inf = net.inference(x, dropout)
loss = net.sorfmax_loss(inf,y)
opti = net.optimer(loss)
correct_pred = tf.equal(tf.argmax(inf, 1), tf.argmax(y, 1))
accuracy = tf.reduce_mean(tf.cast(correct_pred, tf.float32))

# #定义测试
create_test_record('/Users/hanjiarong/Documents/testdata/tfrtest')
# image_t, label_t = read_and_decode('test.tfrecords')
# batch_test_image, batch_test_label = get_test_batch(image_t, label_t, 50)
#
# #生成测试
image, label = read_and_decode('train.tfrecords')
batch_image, batch_label = get_batch(image, label, 1)

# val, l = session.run([batch_image, batch_label])
# print(val.shape, l)


with tf.Session() as session:
    init = tf.initialize_all_variables()
    session.run(init)
    coord = tf.train.Coordinator()
    threads = tf.train.start_queue_runners(coord=coord)
    max_iter = 100000
    iter = 1
    print("begin1")
    while iter * 30 < max_iter:
        # loss_np, _, label_np, image_np, inf_np = session.run([loss, opti, batch_label, batch_image, inf])
        session.run(opti, feed_dict={x: session.run(batch_image), y: session.run(batch_label), keep_drop: dropout})
        print("begin6")
        if iter % 10 == 0:
            loss, acc = session.run([loss, accuracy], feed_dict={x: batch_image, y: batch_label, keep_drop: 1.})
            print("Iter " + str(iter * 30) + ", Minibatch Loss= " + \
                  "{:.6f}".format(loss) + ", Training Accuracy= " + "{:.5f}".format(acc))
        iter += 1
        print("Optimization Finished!")
        image, label = read_and_decode('test.tfrecords')
        batch_test_image, batch_test_label = get_batch(image, label, 2)
        img_test, lab_test = session.run([batch_test_image, batch_test_label])
        test_accuracy = session.run(accuracy,
                                    feed_dict={x: img_test, y: lab_test, keep_drop: 1.})
        print("Testing Accuracy:", test_accuracy)
















1个回答

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
用自己的图片数据做tensorflow深度学习
   应老师的任务需要我加入了深度学习的行列,接触了一段时间,下面对自己的学习做一个总结。刚开始学习深度学习tensorflow,网上大多的教程都是用他们已有的数据来学习tensorflow,像mnist数据,cifar10数据,说实话这对于我这种小白来说用处不大,例子程序跑了几篇对于它的运行方式还是模模糊糊的,前一段时间在网上找到一个用猫狗图片数据做自己的深度学习的视频系列,感觉蛮有用的,这是链...
tensorflow做cifar-10识别
使用tensorflow做cifar-10的分类识别,使用的语言是python
用tensorflow在mnist数据集上做测试
用tensorflow在mnist数据集上做测试方法:softmax regressionfrom tensorflow.examples.tutorials.mnist import input_data mnist = input_data.read_data_sets("MNIST_data/", one_hot = True)输出: Successfully downloaded train
《用tensorflow做的cbow词向量》中的数据集
该文本对应的是《用tensorflow做的cbow词向量》中的数据集。可以下载。
TensorFlow做图片的预处理
今天我们来一起学习一下如何用TensorFlow来处理图片,其实这个也很简单,主要就是做图片旋转,亮度色彩对比度的调整,还有就是裁剪等一系列处理。首先我们导入要用的Python库: import tensorflow as tf import matplotlib.pyplot as plt 我们用的是一张喵的图片,原图如下: ...
用自己的数据集做resnet-50的测试
这是我参考的博客 我的数据集是一个图片9分类的数据集,文本标签的形式为路径+空格+标签,制作的标签方法参考我上一篇博客 做一些问题补充如下: 1、因为我做的图片数据集稳128*128,所以把prototxt最后pool5里的kernelsize改小了一些,然后9分类所以把最后的numout改成了9 2、文本标签我做的是1从9出现了错误,我把它改成了0-8后解决 3、出现loss一直不变的...
【tensorflow】Object DetectionAPI训练识别自己的数据集
一、数据准备 1.一个友好的标注工具 各种系统安装已经再此介绍的很详细了,linux下可以三行命令解决。 注意:图片要求是png或者jpg格式 1&amp;amp;amp;amp;amp;amp;amp;gt; . 标注信息存为xml文件,使用该脚本可以将所有的xml文件转换为1个csv文件(自行修改xml路径) 2&amp;amp;amp;amp;amp;amp;amp;gt; . 把生成的csv文件分成训练集和测试集 2.生成TFRecord文件 使用该脚本分别生成train.re
tensorflow识别MNIST数据集
目录 数据准备 1、引入MNIST数据集 2、保存前30条数据的原始图片  一、softmax实现单神经元模型 1、初始化变量 2、向前传播以及损失函数 3、向后传播以及优化参数 4、开始训练 5、评估模型 补充 二、两层卷积网络分类 1、初始化变量 2、预定义函数 3、卷积层 4、全连接层 5、定义交叉熵损失以及测试的准确率 6、开始训练 总结 数据准备 ...
【Tensorflow】用tersorflow内置函数做图片预处理
本篇作为【Tensorflow】超大规模数据集解决方案的补充,介绍一下tersorflow内置函数对图片的预处理。前面的方法都是用skimage等辅助库来处理图像,因为我们都是在外部处理完所有的图像,然后再输入网络,以Placeholder的形式。但是当我们使用Tensorflow内部的Input pipeline的时候,图片一经读取,就已经转换成了Tensorflow内置的格式,这种格式下,
用Tensorflow处理自己的数据:制作自己的TFRecords数据集
转载请注明作者和出处: http://blog.csdn.net/c406495762 运行平台: Windows Python版本: Python3.x IDE: Spyder前言   最近一直在研究深度学习,主要是针对卷积神经网络(CNN),接触过的数据集也有了几个,最经典的就是MNIST, CIFAR10/100, NOTMNIST, CATS_VS_DOGS 这几种,由于这几种是
用下载好的本地数据集,自己解析数据集,做手写数字识别
1、说明 数据集下载地址:http://yann.lecun.com/exdb/mnist/ 参考的官网地址:http://www.tensorfly.cn/tfdoc/tutorials/mnist_beginners.html 2、关于程序的说明 下面用的是最简单的神经网络。 其中decode_idx3_ubyte(idx3_ubyte_file)和decode_idx1_ubyte(idx1...
自己做的voc2007数据
自己做的voc数据
Tensorflow生成自己的图片数据集TFrecords
Tensorflow生成自己的图片数据集TFrecordstrain.txt保存图片的路径和标签信息test_image/dog/1.jpg 0test_image/dog/2.jpg 0test_image/dog/3.jpg 0test_image/dog/4.jpg 0test_image/cat/1.jpg 1test_image/cat/2.jpg 1test_image/cat/3.j...
利用Tensorflow构建自己的图片数据集TFrecords
相信很多初学者和我一样,虽然用了那么久的tensorflow,也尝试了很多的实例,但那些实例基本都是直接利用官方文档现成的MNIST和cifar_10数据库,而一旦需要自己构建数据集时,完全不知道该如何制作并输入自己改的数据。今天给大家分享我的Tensorflow制作数据集的学习历程。 TensorFlow提供了标准的TFRecord 格式,而关于 tensorflow 读取数据, 官网也提供了3
Tensorflow之构建自己的图片数据集TFrecords(二)
    分类好了图片,接下来制作成Tfrecord格式。    先贴代码:import tensorflow as tf from PIL import Image import os cwd = os.getcwd() root = cwd+&quot;./images_variant_trainval&quot; TFwriter = tf.python_io.TFRecordWriter(&quot;./images_...
Tensorflow之构建自己的图片数据集TFrecords
学习谷歌的深度学习终于有点眉目了,给大家分享我的Tensorflow学习历程。    tensorflow的官方中文文档比较生涩,数据集一直采用的MNIST二进制数据集。并没有过多讲述怎么构建自己的图片数据集tfrecords。    先贴我的转化代码将图片文件夹下的图片转存tfrecords的数据集。   ##########################################
Tensorflow构建自己的图片数据集TFrecords
:C/C++ 图像二进制存储与读取中,已经讲解了如何利用C/C++的方法存储与读取二进制图像文件,本文继续讲述如何根据CIFAR-10的格式制作自己的数据集。 所述博文与代码均已同步至GitHub 说明一下,这是一篇在window下操作的,换到ubuntu下请各位自行解决,博客质量是不错的,自己制作很不错。 前一篇博客:C/C++ 图像二进制存储与读取中,已经讲解了如何利用C/C++的
Tensorflow之构建自己的图片数据集TFrecords(精)
用了这么久的tensorflow,例子跑了N多便,基本流程是清楚了。但是自己独立做一个小例子各种问题都来了。如自己图片数据集怎么做?说句老实话,tensorflow真是烦,管方文档教程上老拿MNIST和cifar_10这种做好的数据集说事,对于我们这些初学者,完全不知道图片该如何输入。今天给大家分享我的Tensorflow制作数据集的学习历程。 流程是:制作数据集—读取数据集—-加入队列
如何制作自己的图片数据集-基于tensorflow
写在开始
Tensorflow之构建自己的图片数据集TFrecords(一)
    接触Tensorflow一个月以来,总算有点感觉。最近一边查文档一边自己摸索,利用Tensorflow构建了自己的图片数据集TFrecords。接下来,我将步骤及用到的相关知识一一记录下来,望大家指点。    用到的原始数据形式截图如下:(用的是fgvc-aircraft-2013b数据集)    制作这个数据集我分成了两步:        第一步:将图片按照给定txt里面的标签复制到指定...
tensorflow训练自己的数据集
    开了好几次头,也不知道要说啥,就直接进入正题吧。 一直做的都不是图片处理,我的数据集都是矩阵,所以从哪导入矩阵,矩阵的正确格式就是关键问题了。一直都让我很困扰,研究几天终于调通了一个模型,有些心得体会想要分享给大家。   代码主要来源: https://blog.csdn.net/Enchanted_ZhouH/article/details/74116823?utm_sour...
tensorflow读取自己的数据集
注意: 我自己是用来训练医学图像生成新的医学图像的,所以我的label都是1(或者其他数值),因为在GAN训练的时候完全用不到,只有分类的问题才能用到。 如果训练分类问题下文中的代码就没用了,不过可以参考这个链接。 我的图片是黑白的,所以channel为1,并且图片保存的格式为png的,所以大家理解的时候请注意image=tf.image.decode_png(image_c...
tensorflow之构建自己的数据集
最近采用tensorflow进行一个项目,识别我军装备的歼-10,歼-11,歼轰-7三种飞机,首先对原始数据集进行处理,重新调整大小至[128,128],并将图片灰度化,减少运算次数。
TensorFlow 读取自己的数据集
数据读取 TensorFlow程序读取数据一共有3种方法: 1. 供给数据(Feeding): 在TensorFlow程序运行的每一步, 让Python代码来供给数据。 2. 从文件读取数据: 在TensorFlow图的起始, 让一个输入管线从文件中读取数据。 2. 预加载数据: 在TensorFlow图中定义常量或变量来保存所有数据(仅适用于数据量比较小的情况)。 feed 参考资料 TF B...
利用mnist数据集的demo来做识别单张图片数字
最近领导让我做图片识别,把这两天的工作记录一下吧,虽然中间做的磕磕碰碰,但是一个好的开始,加油!好了不灌鸡汤了,let's  show! 在做图片识别之前,需要对图片做处理,利用的是opencv(python 环境需要装) 比如我们要识别的电表的数字如下图: 下面是对该图片的做opencv处理,源代码如下: # coding=utf-8 from __future__ impo
大神们。。。跪求帮助。。。
我为了能向表里插入中文字符,我在服务端设置DB_LOCALE和CLIENT_LOCALE为GB18030-2000,但这样之后,库名、 表明以及表的列名都不支持中文,我到底该如何设置?rnrn 例如:create database 中文库;rnrn create table 中文表(中文列 char(50));rn 大神们。。。跪求帮助。。。如何才能使上面两个命令正确执行?
跪求大神帮助
老师让我做一个程序,用java或是c#都行,能都实现把一些数据查找出来。rn例如:rn[img=http://img.my.csdn.net/uploads/201303/18/1363601465_8082.png][/img]rn然后一列一列,对应的位置进行比较,如果一列对应位置的数据都大于等于另外的一列就把他列出来(最好可以把它所在的行可以列出来)上图就可以列出①【4,5,6】而第三行就不能因为有一个大于7大于5.
跪求大神的帮助
在vs2010中编写fortran程序出现错误 fatal error LNK1104: 无法打开文件“dfor.lib”该怎么解决
利用 TensorFlow 识别 MNIST数据集
出自《21个项目玩转深度学习:基于TensorFlow的实践详解》中的项目利用 TensorFlow 识别 MNIST数据集,已调通,放到pycharm中即可调通。
Tensorflow学习--识别mnist数据集
在学习Tensorflow时,很多例子都是采用的mnist数据集,首先是下载mnist数据集,下载地址如下: http://www.tensorfly.cn/tfdoc/tutorials/mnist_download.html 将链接中四个压缩文件都下载下来, 如下图所示 然后四个压缩文件都放入一个新建的MNIST_data文件夹,不用解压直接放入文件夹就好了。    这里的...
tensorflow实现MNIST数据集识别
tensorflow实现MNIST数据集识别
利用tensorflow训练自己的图片数据集——数据准备
原文地址:https://blog.csdn.net/jesmine_gu/article/details/81093686 这里只是做个收藏,防止原链接失效 import os import numpy as np from PIL import Image import tensorflow as tf import matplotlib.pyplot as plt angry = ...
用CatBoost做音素识别
1,下载TIMIT语料库,解压,全部目录,文件变小写,按照NLTK要求,修改所有根目录下的.txt配置文件 2,安装必要python库:nltk, librosa,numpy,catboost 3,  实现训练过程,原理:TIMIT中wav格式并非标准RIFF格式,好在格式简单,每个文件头占1024字节,文本格式,剩下的是pcm raw data,录制格式是单声道,16bit 16KHz,安装
自己做的电话本用MFC做的
用MFC做的电话本 没有用数据库 是用文件保存数据的
Caffe-用自己的数据做训练
1,数据集制作1.1数据集分为train和validate,分别写到train.txt和val.txt中。格式图片文件名+ 空格 + label 如图:1.2将准备好的两个txt, 放到caffe_root/data/myfile/ (caffe_root是caffe的根目录, myfile自己命名)。将训练街和验证集图片文件夹放到/img_full_dir1和/img_full_dir2(自己定
用ps做的图片
用ps做的许多图片,可以看看,都能在ps上直接运行
用逻辑回归做minist数据集识别+softmax分类器总结
本周通过minist数据集的分类识别对softmax分类重新理解,终于理清了之前的迷惑。 1、 softmax回归算法逻辑回归在多分类问题上的变体,我们知道线性回归解决的连续值的预测,逻辑回归解决的是离散值的预测,而且针对二分类问题。那么问题来了,如果是离散值预测,但是是多类别预测,也就是有多个类别标签,这种情况怎么办呢?Softmax回归针对的就是这种问题。     逻辑归回的假设函数如下:...
用FCN训练自己数据集(Tensorflow)
用FCN训练自己数据集
TensorFlow下用自己的数据集训练Faster RCNN
一、准备自己的数据库         仅改变VOC2007数据库的Annotation、ImageSets、JPEGImages三个文件夹。Annotation为标注文件,ImageSets为训练、测试,JPEGImages为图片。 (Faster-RCNN_TF) 二、修改原始代码         在Tensorflow环境下实现FASTER RCNN,htt
TensorFlow识别图片数字
一、 第一步是先用tensorflow官网(http://www.tensorfly.cn/tfdoc/get_started/introduction.html)的手写体数字识别例子训练好一个模型,训练完准确率一般能达到99%,然后保存训练好的模型。 二、 主文件 import tensorflow as tf from PIL import Image, ImageFilter
相关热词 c# stream 复制 android c# c#监测窗口句柄 c# md5 引用 c# 判断tabtip 自己写个浏览器程序c# c# 字符串变成整数数组 c#语言编程写出一个方法 c# 转盘抽奖 c#选中treeview