我写了这段代码:
float b = 3.6;
Run Code Online (Sandbox Code Playgroud)
我明白了
Error:Unresolved compilation problem:
Type mismatch: cannot convert from double to float
为什么?是什么定义float?
我已经阅读了关于TensorFlow的CNN教程,我正在尝试为我的项目使用相同的模型.现在的问题是数据读取.我有大约25000张图像用于培训,大约5000张用于测试和验证.文件是png格式,我可以读取它们并将它们转换为numpy.ndarray.
教程中的CNN示例使用队列从提供的文件列表中获取记录.我试图通过将我的图像重塑为一维数组并在其前面附加标签值来创建我自己的二进制文件.所以我的数据看起来像这样
[[1,12,34,24,53,...,105,234,102],
[12,112,43,24,52,...,115,244,98],
....
]
Run Code Online (Sandbox Code Playgroud)
上述数组的单行长度为22501,其中第一个元素是标签.
我将文件转储到使用pickle并尝试使用tf.FixedLengthRecordReader从文件中读取以从文件中读取,如示例中所示
我正在做与cifar10_input.py中给出的相同的事情来读取二进制文件并将它们放入记录对象中.
现在,当我从文件中读取标签和图像值不同时.我可以理解这是因为pickle还在二进制文件中转储大括号和括号的额外信息,并且它们更改了固定长度的记录大小.
上面的示例使用文件名并将其传递给队列以获取文件,然后将队列传递给文件中的单个记录.
我想知道我是否可以将上面定义的numpy数组而不是文件名传递给某些阅读器,它可以从该数组而不是文件中逐个获取记录.
我正在通过TensorFlow的CIFAR-10示例开始CNN入门指南
现在在cifar10_train.py的火车功能中我们得到的图像为
images,labels = cifar10.distorted_inputs()
Run Code Online (Sandbox Code Playgroud)
在distorted_inputs()函数中,我们在队列中生成文件名,然后将单个记录读取为
# Create a queue that produces the filenames to read.
filename_queue = tf.train.string_input_producer(filenames)
# Read examples from files in the filename queue.
read_input = cifar10_input.read_cifar10(filename_queue)
reshaped_image = tf.cast(read_input.uint8image, tf.float32)
Run Code Online (Sandbox Code Playgroud)
当我添加调试代码时,该read_input变量只包含一条带有图像的记录及其高度,宽度和标签名称.
然后,该示例将一些失真应用于读取的图像/记录,然后将其传递给_generate_image_and_label_batch()函数.
该函数然后返回形状的4D张量[batch_size, 32, 32, 3] ,其中batch_size = 128.
tf.train.shuffle_batch()返回批处理时,上述功能使用该功能.
我的问题是功能中额外的记录来自tf.train.shuffle_batch()哪里?我们没有传递任何文件名或读者对象.
有人可以说明我们如何从1条记录转到128条记录吗?我查看了文档,但不明白.
我认为添加一个新的模块将进行中心池化.
我正在查看tensorflow代码,并且有一个名为gen_nn_ops.py内部调用来自另一个文件的函数的文件,通过传递"Maxpool","AvgPool"等参数来执行所需的计算.
我想做中心池,选择窗口中的中心元素.我已为matlab和c ++版本准备好代码,但需要知道如何在TensorFlow中添加新模块以进行此类计算.还在哪里设置backpropogation代码.
我一直致力于通过使用行列式方法找到具有三个点的抛物线.有时返回的系数
-0.0000
这是什么意思?为什么会出现负号并表示什么?
我正在用这样的数组初始化一个Mat对象
int data[4] = {111,2,3,4};
Mat A = Mat(2, 2, CV_8UC1, data);
Run Code Online (Sandbox Code Playgroud)
现在当我打印(1,1)时的值应为4
cout<<"\n m1 at 1,1 "<<(int)A.at<uchar>(1,1);
Run Code Online (Sandbox Code Playgroud)
它是打印 - 0
我在Windows XP和OpenCv 2.3中使用VS2008.我从昨天开始坚持下去.
我正在开发一个项目,其中微控制器设备将数据发送到网络服务器。
我创建了一个网页,用户可以在其中使用表单向设备发送命令,并可以在同一页面上看到设备的响应。
问题是设备只理解十六进制命令。所以我需要从页面发送十六进制命令,例如
0x800xe80x10
现在我可以从网页上的表单读取用户提交的命令,但我无法将其按原样转换为十六进制。我读过有关 Buffer 的内容,但它将每个 ASCII 字符更改为十六进制。所以0x80给出类似的东西
30 78 38 30
而我想要的是
80
谢谢