Tensorflow利用自制的数据集做图像识别,程序卡在读取tfrecord文件不跑 40C

我利用自己的图片做了一个数据集训练神经网络,在feed数据的时候数据类型不合适,加了session.run()程序就卡在这里不动了,下面贴出代码,跪求大神指导。
程序卡在print(“begin4”)和print(“begin5”)之间

 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)
#
# #生成测试


init = tf.initialize_all_variables()
with tf.Session() as session:
    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:
        print("begin2")
        image, label = read_and_decode('train.tfrecords')
        print("begin3")
        batch_image, batch_label = get_batch(image, label, 1)
        print("begin4")
        batch_image = session.run(batch_image)
        batch_label = session.run(batch_label)
        print("begin5")
        # loss_np, _, label_np, image_np, inf_np = session.run([loss, opti, batch_label, batch_image, inf])
        session.run(opti, feed_dict={x: batch_image, y: 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)
















4个回答

Tensorflow中文社区测试版已经开放了,你可以去看,希望你能找到答案!

也许可以使用.pkl文件试试?

我原来做的,直接读取TFRecord文件里的数据image,label作为输入,也卡在那了,,解决的话就是把读出的文件在处理一遍,tf.train.slice_input_producer([image, label])然后生成batch,image_batch, label_batch = tf.train.batch([image, label],
batch_size= batch_size,然后就可以跑了

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
微信小程序如何展示星级评分
根据https://blog.csdn.net/qq_35713752/article/details/78770260做的。 我想存这些评分到云数据库,然后另一个页面读取出来。 那么请问evaluations的id与star要怎么存和怎么读取?
在windows下生成tfrecords,拷贝到linux后变成了stl 3d类型的文件导致程序读取报错?
问题描述: 在自己电脑(windows系统)上写了程序生成自己的tfrecords数据集,然后拷贝到工作用的电脑在linux系统下进行模型训练。之前一直没问题,直到最近新生成了一批数据集拷贝到工作电脑上使用时,程序突然报错。OutOfRangeError (see above for traceback): RandomShuffleQueue '_1_shuffle_batch/random_shuffle_queue' is closed and has insufficient elements (requested 32, current size 0)[[node shuffle_batch (defined at C:/Users/Administrator/.PyCharmCE2018.3/config/scratches/123.py:40) ]] 通过查找论坛博客的方法,调整读取模块,最终还是没能解决。 试了试读取以前的数据集,发现程序又毫无问题。这时注意到在linux系统里以前的tfrecords数据集的属性里写的是类型:二进制,但是新的tfrecords数据集却是STL 3D模型(二进制)。 生成数据集的程序一直都没改过,为何现在数据集到了linux系统类型就变了? 我也尝试了在windows下读取新的数据集,结果显示能够正常读取。。
Java语言读取文本文件里面的一组数字,并且在屏幕上输出最大的那个数
Java语言读取文本文件里面的一组数字,并且在屏幕上输出最大的那个数 这个问题怎么做
datax 从hive导出数据到mysql时 字段分隔符的配置
hive中建表时指定字段分割符为 \t,配置导出的json时,配置字段分隔符为 \t,导出失败,原因是从hive读取数据时只能识别一个字段,显然字段分割没有成功。。网上百度说字段分隔符默认应设置为 \u0001,但这是在hive上建表时没有指定字段分割符时。。想搞明白这是什么原因,比如我的 \t 在导出时为什么不能使用呢,是hive无法识别吗?我建表的时候就是 \t 啊,是需要转成什么字符集吗。。在字符集这块比较晕,请大神指点指点[face]qq:83.gif[/face]
如何区分程序内存的指令区和数据区?
各位大佬,我目前知道,程序被编译后,实际上就是二进制文件。运行的时候,计算机会读取这些数据。但是我不懂的是,程序运行的时候,内存分配有指令区和数据区。计算机按照一定规则来区分哪些内存存的是指令,哪些存的是数据。如果我想用c#或者c++来读取一个程序运行时的内存,怎么区分哪些内存点存的是指令?哪些存的是数据呢?谢谢各位大佬指点哈!
java Dom4j 不能读取注释不规范的xml
比如我的注释为 <!-- 这是一个注释 --> 换行了 这个dom4j就读不了了,抛异常,删除注释再让他读取 或者注释同一行就没问题, 但是这个注释不可能都去删除 因为默认都是这个,看有没有仁兄有好的解决思路
当数据量很大的时候,GetPrivateProfileSection()为什么获取的数据只有少一半。
从一个很大的数据量里读取数据,但是GetPrivateProfileSection函数,读取文档中的数据时,把某一行读取到一半就自动读取下一行的内容,而非全部读取完。但当数据量很小的时候,读取正常。(我用的编程语言是C#)
opencv实现边缘梯度直方图+meanshift实现框选物体跟踪,代码出错,不知道错在哪里?
``` #include<iostream> #include<opencv2/opencv.hpp> #include<opencv2/highgui/highgui.hpp> #include<opencv2/core/core.hpp> #include<opencv2/imgproc/imgproc.hpp> #include<ctype.h> using namespace std; using namespace cv; Mat image; //当前帧图像 Mat imageCopy; //用于拷贝的当前帧图像 Mat rectImage; //子图像 Point beginPoint; //矩形框起点 Point endPoint; //矩形框终点 bool leftButtonDownFlag = false; //左键单击后视频暂停播放的标志位 int frameCount = 0; //帧数统计 int trackCount = 0; //等于1时初始化直方图 void onMouse(int event, int x, int y, int flags, void* ustc); //鼠标回调函数 int main(int argc, char* argv[]) { VideoCapture capture("1.AVI"); //VideoCapture capture(0); int capture_fps = capture.get(CV_CAP_PROP_FPS); //获取视频帧率 int capture_count = capture.get(CV_CAP_PROP_FRAME_COUNT); int capture_width = capture.get(CV_CAP_PROP_FRAME_WIDTH); int capture_height = capture.get(CV_CAP_PROP_FRAME_HEIGHT); cout << "视频帧率:" << capture_fps << endl; cout << "视频帧数:" << capture_count << endl; cout << "视频宽度:" << capture_width << endl; cout << "视频高度:" << capture_height << endl; int pauseTime = 1000 / capture_fps; //两幅画面中间间隔 namedWindow("Video"); setMouseCallback("Video", onMouse);//函数setMousecallback用于鼠标在图上做标记等作用 int hbinNum = 16;//每一维上直方图的个数,如果是一维直方图,就是竖条(bin)的个数 float hranges[] = { 40, 250 };//每一维数值的取值范围数组 const float* phranges = hranges;//const修饰phranges指针,指针phranges的指向可以修改,但是phranges指向的值不可以改;指针phranges指向的是hranges的首地址 bool backprojectMode = false; namedWindow("Video", 0); capture >> image; int rows = image.rows; int cols = image.cols; Mat image1 = image.clone(); Mat dst, edge, gray;//定义canny边缘检测所需的变量 Mat abs_grad_x, abs_grad_y;//定义sobel算子求方向梯度所需的变量 Mat grad_x(rows, cols, CV_8UC1, Scalar::all(0));//定义sobel算子求方向梯度所需的变量 Mat grad_y(rows, cols, CV_8UC1, Scalar::all(0));//定义sobel算子求方向梯度所需的变量 Mat theta(rows, cols, CV_32FC1, Scalar::all(0)); Mat gradient(rows, cols, CV_32FC1, Scalar::all(0));//梯度矩阵 Mat angle(rows, cols, CV_32FC1, Scalar::all(0));//梯度方向角度 Mat mask, hist, histImg = Mat::zeros(image.size(), image.type()), backproj;//初始化histImg存储直方图数据,使其规格与捕获的image相同 Rect trackWindow;//定义一个捕捉矩形窗口 //**********************读取视频******************************** while (true) { if (!leftButtonDownFlag) //鼠标左键按下绘制矩形时,视频暂停播放 { capture >> image;//读取当前帧 frameCount++; //帧数增加,视频向前增加 } if (!image.data || waitKey(pauseTime + 30) == 27) //当当前帧的数据为空或两帧画面的时间间隔不满足规定的数值时,退出播放 { break; } //***************camshiftdemo代码的脉络分析******************** //提取边缘梯度大小与幅值 if (trackCount > 0) { dst.create(image1.size(), image1.type()); dst = Scalar::all(0); cvtColor(image1, gray, COLOR_BGR2GRAY); GaussianBlur(gray, edge, Size(3, 3), 0, 0); Canny(edge, edge, 3, 9, 3);//canny算子获得边缘图 Sobel(gray, grad_x, CV_16S,1, 0, 3, 1, 1);//求X方向的梯度 Sobel(gray, grad_y, CV_16S,0, 1, 3, 1, 1);//求Y方向的梯度 cartToPolar(grad_x, grad_y, gradient, angle);//计算梯度方向与梯度幅值 convertScaleAbs(grad_x, grad_x); convertScaleAbs(grad_y, grad_y); //绘制直方图 if (trackCount == 1) { histImg = Scalar::all(0); Mat roi(angle, Rect(beginPoint, endPoint)), maskroi(mask, Rect(beginPoint, endPoint)); calcHist(&roi, 1, 0, maskroi, hist, 1, &hbinNum, &phranges);//掩膜maskroi是用来确定输入图像的哪些像素被计数;mask也设置ROI, 是要让hue中截取出来放在mask中的 区域大小位置都和hue中一致, 不要改变原来的位置这点很有用。 normalize(hist, hist, 0, 255, CV_MINMAX); trackCount++; trackWindow = Rect(beginPoint, endPoint); } calcBackProject(&angle, 1, 0, hist, backproj, &phranges);//直方图反向投影 backproj &= mask; meanShift(backproj, trackWindow, TermCriteria(CV_TERMCRIT_EPS | CV_TERMCRIT_ITER, 10, 1));//CamshiftDemo //***画出跟踪区域的位置 if (backprojectMode) { cvtColor(backproj, image, CV_GRAY2BGR); } rectangle(image, Point(trackWindow.x, trackWindow.y), Point(trackWindow.x + trackWindow.width, trackWindow.y + trackWindow.height), Scalar(0, 0, 255), 1, CV_AA);//画跟踪矩形框 trackCount++; // writer << image; } imshow("Video", image); } waitKey(0); return 0; } //鼠标回调函数 void onMouse(int event, int x, int y, int flags, void *ustc) { if (event == CV_EVENT_LBUTTONDOWN) { leftButtonDownFlag = true; //标志位 beginPoint = Point(x, y); //设置左键按下点的矩形起点 endPoint = beginPoint; } if (event == CV_EVENT_MOUSEMOVE && leftButtonDownFlag) { imageCopy = image.clone(); endPoint = Point(x, y); if (beginPoint != endPoint) { //在复制的图像上绘制矩形 rectangle(imageCopy, beginPoint, endPoint, Scalar(0, 0, 255), 2); } imshow("Video", imageCopy); } if (event == CV_EVENT_LBUTTONUP) { leftButtonDownFlag = false; Mat subImage = image(Rect(beginPoint, endPoint)); //子图像 rectImage = subImage.clone(); trackCount = 1; //imshow("Sub Image", rectImage); } } ```
tensorflow读取文件时出现decode错误
![图片说明](https://img-ask.csdn.net/upload/201909/30/1569847015_825245.png) 这是我的代码,在第三行那里读取文件名时出现这个错误, list_files这个函数在tensorflow的文档中时这样的: ![图片说明](https://img-ask.csdn.net/upload/201909/30/1569847319_126135.png) 应该如何解决这个问题呢?
使用python以YCbCr读取图片,如何把Y通道的数据提取为tensorflow张量?
使用python以YCbCr读取图片,如何把Y通道的数据提取为tensorflow张量?
Java语言读取软驱中软盘上的文件,并且拷贝到硬盘上,怎么写程序的呢
Java语言读取软驱中软盘上的文件,并且拷贝到硬盘上,怎么写程序的呢
NPOI读取和写入Excel数据时候,怎么可以按照单元格数据的样式,存取和写入数据到Excel表格中呢?
首先我先读取到一个Excel中的数据,使用List<List<object>>将数据存储起来。 然后再写入到另一个Excel文件中,写入时,需要指定写入数据的格式,例如DateTime,Bool,String,Double等,这个时候我该怎么实现?
python pdfminer3k PyPDF2 读取pdf乱码或者错误
想要读取一个pdf,首先使用的是pdfminer3k 包,测试后简单的能够读取成功,换了一个有水印的就读取的值不对,都是写乱码数据类似于(cid:26131)(cid:26126)(cid:32454)(cid:20449)(cid:24687)(cid:22914)(cid:19979)(cid:65306)这样的,然后换成PyPDF2,同样简单的成功读取到了,加入水印(页面上面覆盖一个图片),读取到的页码是对的,但是读取内容的时候又是乱码,类似于Q Q5F.14×!å4×!åˇÿF 4×!å4×!åˇÿF ˛\ QAàCg!nCg!nAà!fiAàAà4ö, 有大神遇到过这个问题吗?或者还有没有其他解析pdf的,万分感激
tensorflow批量读取图片出错
# -*- coding: utf-8 -*- import tensorflow as tf import numpy as np import os import matplotlib.pyplot as plt #训练样本在本地磁盘中的地址 file_dir='/home/lvlulu/Test-Train/Microfibers' # 这里是输入数据的地址 batch_size = 10 def get_files(file_dir): lung_img = []; label_lung_img = []; for file in os.listdir(file_dir): lung_img.append( file_dir + file) label_lung_img.append(1) image_list = np.hstack((lung_img)) label_list = np.hstack((label_lung_img)) temp = np.array([lung_img, label_lung_img]).T #利用shuffle打乱数据 np.random.shuffle(temp) image_list = list(temp[:,0]) label_list = list(temp[:,1]) label_list = [int(i) for i in label_list] return image_list, label_list def get_batch(image,label): image_W, image_H = 221, 181 #batch_size = 10 #将python.list类型转换成tf能够识别的格式 image=tf.cast(image,tf.string) label=tf.cast(label,tf.int32) #产生一个输入队列queue epoch_num = 50 #防止无限循环 input_queue=tf.train.slice_input_producer([image,label], num_epochs=epoch_num) label=input_queue[1] image_contents=tf.read_file(input_queue[0]) #print(image_contents) #将图像解码,不同类型的图像不能混在一起,要么只用jpeg,要么只用png等。 image=tf.image.decode_jpeg(image_contents, channels = 3) #print(image) #将数据预处理,对图像进行旋转、缩放、裁剪、归一化等操作,让计算出的模型更健壮。 image=tf.image.resize_image_with_crop_or_pad(image,image_W,image_H) image=tf.image.per_image_standardization(image) #print(image) #生成batch min_after_dequeue=10 capacity=min_after_dequeue+5*batch_size image_batch,label_batch=tf.train.shuffle_batch( [image,label], batch_size=batch_size, num_threads=64, capacity=capacity, min_after_dequeue=min_after_dequeue ) #重新排列标签,行数为[batch_size] #label_batch=tf.reshape(label_batch,[batch_size]) image_batch = tf.reshape(image_batch,[batch_size,image_W,image_H,3]) image_batch=tf.cast(image_batch,np.float32) #print(image_batch) return image_batch, label_batch if __name__ == "__main__": image_list, label_list = get_files(file_dir) image_batch, label_batch = get_batch(image_list, label_list) print(image_batch) with tf.Session() as sess: ##初始化工作 sess.run(tf.global_variables_initializer()) sess.run(tf.local_variables_initializer()) i = 0 coord = tf.train.Coordinator() threads = tf.train.start_queue_runners(coord=coord) #print(sess.run([image_batch])) print(label_batch) #回收子线程 coord.request_stop() coord.join(threads) ``` ``` Caused by op u'ReadFile', defined at: File "batch.py", line 80, in <module> image_batch, label_batch = get_batch(image_list, label_list) File "batch.py", line 48, in get_batch image_contents=tf.read_file(input_queue[0]) File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/gen_io_ops.py", line 144, in read_file result = _op_def_lib.apply_op("ReadFile", filename=filename, name=name) File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/op_def_library.py", line 759, in apply_op op_def=op_def) File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/ops.py", line 2240, in create_op original_op=self._default_original_op, op_def=op_def) File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/ops.py", line 1128, in __init__ self._traceback = _extract_stack() NotFoundError (see above for traceback): /home/lvlulu/Test-Train/Microfibers0112.jpg [[Node: ReadFile = ReadFile[_device="/job:localhost/replica:0/task:0/cpu:0"](input_producer/Gather)]] [[Node: Shape_6/_14 = _HostSend[T=DT_INT32, client_terminated=false, recv_device="/job:localhost/replica:0/task:0/gpu:0", send_device="/job:localhost/replica:0/task:0/gpu:0", send_device_incarnation=1, tensor_name="edge_3_Shape_6", _device="/job:localhost/replica:0/task:0/gpu:0"](Shape_6)]] ``` ```
从txt读取数据时系统自动多读取了一部分零碎的数据,希望大佬们能帮忙解决一下。
本人c++萌新,对c++还不太熟悉。(已解决,谢谢大家) 参考信息:【mie haha 的博客】转载请注明出处(万分感谢!): https://blog.csdn.net/qq_40315080/article/details/88176331 ![图片说明](https://img-ask.csdn.net/upload/202001/03/1578043480_334799.png)(调试照片以及txt文档) (修改如下,具体原因可见我转载的文章)![图片说明](https://img-ask.csdn.net/upload/202001/03/1578062048_231754.png) 读取函数如下: ``` void Class::class_Read() //从文件读入数据 { Date *p; p = ClassHead; ifstream in("class.txt"); if (!in) { cout << "没有课程信息,请先录入课程信息!" << endl; return; } while (1) { string n,e; int s; double N,t; in >> N >> n >> t >> s >> e; class_insert(N,n,t,s,e); if(in.fail()) { break; } } in.close(); } #endif; ```
mongodb 读取不到数据
我在Swarm集群中部署了一个mongo的docker ,然后挂载了一个数据卷 -v data/db:/data/db,然后,将这个数据卷copy到k8s集群中的一个节点上,然后在k8s中部署一个mongo的docker, 也挂载这个卷,但是这个mongo启动之后,之前的数据库都不存在了 ,我查询了导过来的数据卷大小和之前的数据卷大小是一样的, 有没有知道这个问题的原因的,请告知小弟一下
QT怎么实现一个包一个包的读取串口数据
我需要一个包一个包的读取串口数据来判断它的包头,字节,ID等信息,那么我应该怎样才能实现一个包一个包的读取串口数据被,求各路大佬帮忙,感激不尽!!!
利用python读取中央气象台的“明天的天气数据”
想利用python读取中央气象(不是中国天气网)某城市明天的天气数据,看了网站源码,数据是放在table里的,不知道怎么定位“明天”的天气数据?求指导,谢谢!![图片说明](https://img-ask.csdn.net/up ``` web=webdriver.Ie() web.maximize_window() web.get("http://www.nmc.cn/publish/forecast/AZJ/panan.html"); time.sleep(5); table1=web.find_element_by_id('forecast') table1_rows=table1.find_elements_by_tag_name('tr') print(table1_rows) table1_cons=table1_rows[0].find_elements_by_tag_name('th') print(table1_cons) row1_col2=table1_rows[1].find_elements_by_tag_name('td')[1].text print(row1_col2) ```load/201911/24/1574604391_341210.png)
java程序读取PLC的浮点数,读取到的小数位错误,请问如何解决?
1.采用modbus4j实现了modbus通信,但读取PLC的浮点数时,读取到整数位正确,小数位错误,请问如何解决? 2. 读取PLC保持寄存器的方法如下: ``` readHoldingRegistersTest(master,1,1,4); private static void readHoldingRegistersTest(ModbusMaster master, int slaveId, int start, int len) { try { ReadHoldingRegistersRequest request = new ReadHoldingRegistersRequest( slaveId, start, len); ReadHoldingRegistersResponse response = (ReadHoldingRegistersResponse) master .send(request); if (response.isException()) { System.out.println("Exception response: message=" + response.getExceptionMessage()); } else { System.out.println(Arrays.toString(response.getShortData())); short[] list = response.getShortData(); byte[] bb = shortToBytes(list); Float ff=byte2float(bb,0); System.out.println("读到"+ff); } } catch (ModbusTransportException e) { e.printStackTrace(); } } ``` 3.和PLC通讯时,PLC给出的数字为46.68,程序读取到的数字为46.5,![图片说明](https://img-ask.csdn.net/upload/201912/10/1575987797_782854.png) 4.和modbus slave仿真软件通讯时,数据读取正常。控制台输出如下:
相见恨晚的超实用网站
相见恨晚的超实用网站 持续更新中。。。
爬虫福利二 之 妹子图网MM批量下载
爬虫福利一:27报网MM批量下载 点击 看了本文,相信大家对爬虫一定会产生强烈的兴趣,激励自己去学习爬虫,在这里提前祝:大家学有所成! 目标网站:妹子图网 环境:Python3.x 相关第三方模块:requests、beautifulsoup4 Re:各位在测试时只需要将代码里的变量path 指定为你当前系统要保存的路径,使用 python xxx.py 或IDE运行即可。 ...
字节跳动视频编解码面经
三四月份投了字节跳动的实习(图形图像岗位),然后hr打电话过来问了一下会不会opengl,c++,shador,当时只会一点c++,其他两个都不会,也就直接被拒了。 七月初内推了字节跳动的提前批,因为内推没有具体的岗位,hr又打电话问要不要考虑一下图形图像岗,我说实习投过这个岗位不合适,不会opengl和shador,然后hr就说秋招更看重基础。我当时想着能进去就不错了,管他哪个岗呢,就同意了面试...
开源一个功能完整的SpringBoot项目框架
福利来了,给大家带来一个福利。 最近想了解一下有关Spring Boot的开源项目,看了很多开源的框架,大多是一些demo或者是一个未成形的项目,基本功能都不完整,尤其是用户权限和菜单方面几乎没有完整的。 想到我之前做的框架,里面通用模块有:用户模块,权限模块,菜单模块,功能模块也齐全了,每一个功能都是完整的。 打算把这个框架分享出来,供大家使用和学习。 为什么用框架? 框架可以学习整体...
源码阅读(19):Java中主要的Map结构——HashMap容器(下1)
HashMap容器从字面的理解就是,基于Hash算法构造的Map容器。从数据结构的知识体系来说,HashMap容器是散列表在Java中的具体表达(并非线性表结构)。具体来说就是,利用K-V键值对中键对象的某个属性(默认使用该对象的“内存起始位置”这一属性)作为计算依据进行哈希计算(调用hashCode方法),然后再以计算后的返回值为依据,将当前K-V键值对在符合HashMap容器构造原则的基础上,放置到HashMap容器的某个位置上,且这个位置和之前添加的K-V键值对的存储位置完全独立,不一定构成连续的存储
c++制作的植物大战僵尸,开源,一代二代结合游戏
此游戏全部由本人自己制作完成。游戏大部分的素材来源于原版游戏素材,少部分搜集于网络,以及自己制作。 此游戏为同人游戏而且仅供学习交流使用,任何人未经授权,不得对本游戏进行更改、盗用等,否则后果自负。目前有六种僵尸和六种植物,植物和僵尸的动画都是本人做的。qq:2117610943 开源代码下载 提取码:3vzm 点击下载--&gt; 11月28日 新增四种植物 统一植物画风,全部修...
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它是一个过程,是一个不断累积、不断沉淀、不断总结、善于传达自己的个人见解以及乐于分享的过程。
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过...
Python——画一棵漂亮的樱花树(不同种樱花+玫瑰+圣诞树喔)
最近翻到一篇知乎,上面有不少用Python(大多是turtle库)绘制的树图,感觉很漂亮,我整理了一下,挑了一些我觉得不错的代码分享给大家(这些我都测试过,确实可以生成) one 樱花树 动态生成樱花 效果图(这个是动态的): 实现代码 import turtle as T import random import time # 画樱花的躯干(60,t) def Tree(branch, ...
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 free -m 其中:m表示兆,也可以用g,注意都要小写 Men:表示物理内存统计 total:表示物理内存总数(total=used+free) use...
Python 基础(一):入门必备知识
Python 入门必备知识,你都掌握了吗?
深度学习图像算法在内容安全领域的应用
互联网给人们生活带来便利的同时也隐含了大量不良信息,防范互联网平台有害内容传播引起了多方面的高度关注。本次演讲从技术层面分享网易易盾在内容安全领域的算法实践经验,包括深度...
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发...
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 演示地点演示 html代码如下` music 这个年纪 七月的风 音乐 ` 然后就是css`*{ margin: 0; padding: 0; text-decoration: none; list-...
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。
数据库优化 - SQL优化
以实际SQL入手,带你一步一步走上SQL优化之路!
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 cpp 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7 p...
通俗易懂地给女朋友讲:线程池的内部原理
餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”
经典算法(5)杨辉三角
写在前面: 我是 扬帆向海,这个昵称来源于我的名字以及女朋友的名字。我热爱技术、热爱开源、热爱编程。技术是开源的、知识是共享的。 这博客是对自己学习的一点点总结及记录,如果您对 Java、算法 感兴趣,可以关注我的动态,我们一起学习。 用知识改变命运,让我们的家人过上更好的生活。 目录一、杨辉三角的介绍二、杨辉三角的算法思想三、代码实现1.第一种写法2.第二种写法 一、杨辉三角的介绍 百度
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹...
面试官:你连RESTful都不知道我怎么敢要你?
干货,2019 RESTful最贱实践
为啥国人偏爱Mybatis,而老外喜欢Hibernate/JPA呢?
关于SQL和ORM的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行了一番讨论,感触还是有一些,于是就有了今天这篇文。 声明:本文不会下关于Mybatis和JPA两个持久层框架哪个更好这样的结论。只是摆事实,讲道理,所以,请各位看官勿喷。 一、事件起因 关于Mybatis和JPA孰优孰劣的问题,争论已经很多年了。一直也没有结论,毕竟每个人的喜好和习惯是大不相同的。我也看...
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // doshom...
致 Python 初学者
欢迎来到“Python进阶”专栏!来到这里的每一位同学,应该大致上学习了很多 Python 的基础知识,正在努力成长的过程中。在此期间,一定遇到了很多的困惑,对未来的学习方向感到迷茫。我非常理解你们所面临的处境。我从2007年开始接触 python 这门编程语言,从2009年开始单一使用 python 应对所有的开发工作,直至今天。回顾自己的学习过程,也曾经遇到过无数的困难,也曾经迷茫过、困惑过。开办这个专栏,正是为了帮助像我当年一样困惑的 Python 初学者走出困境、快速成长。希望我的经验能真正帮到你
Python 编程实用技巧
Python是一门很灵活的语言,也有很多实用的方法,有时候实现一个功能可以用多种方法实现,我这里总结了一些常用的方法,并会持续更新。
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,
程序员:我终于知道post和get的区别
IT界知名的程序员曾说:对于那些月薪三万以下,自称IT工程师的码农们,其实我们从来没有把他们归为我们IT工程师的队伍。他们虽然总是以IT工程师自居,但只是他们一厢情愿罢了。 此话一出,不知激起了多少(码农)程序员的愤怒,却又无可奈何,于是码农问程序员。 码农:你知道get和post请求到底有什么区别? 程序员:你看这篇就知道了。 码农:你月薪三万了? 程序员:嗯。 码农:你是怎么做到的? 程序员:
"狗屁不通文章生成器"登顶GitHub热榜,分分钟写出万字形式主义大作
前言 GitHub 被誉为全球最大的同性交友网站,……,陪伴我们已经走过 10+ 年时间,它托管了大量的软件代码,同时也承载了程序员无尽的欢乐。 上周给大家分享了一篇10个让你笑的合不拢嘴的Github项目,而且还拿了7万+个Star哦,有兴趣的朋友,可以看看, 印象最深刻的是 “ 呼吸不止,码字不停 ”: 老实交代,你是不是经常准备写个技术博客,打开word后瞬间灵感便秘,码不出字? 有什么
推荐几款比较实用的工具,网站
1.盘百度PanDownload 这个云盘工具是免费的,可以进行资源搜索,提速(偶尔会抽风????) 不要去某站买付费的???? PanDownload下载地址 2.BeJSON 这是一款拥有各种在线工具的网站,推荐它的主要原因是网站简洁,功能齐全,广告相比其他广告好太多了 bejson网站 3.二维码美化 这个网站的二维码美化很好看,网站界面也很...
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU
相关热词 c#选择结构应用基本算法 c# 收到udp包后回包 c#oracle 头文件 c# 序列化对象 自定义 c# tcp 心跳 c# ice连接服务端 c# md5 解密 c# 文字导航控件 c#注册dll文件 c#安装.net
立即提问