对于具有多个维度的数组,我们通常需要for为每个维度编写一个循环.例如:
vector< vector< vector<int> > > A;
for (int k=0; k<A.size(); k++)
{
for (int i=0; i<A[k].size(); i++)
{
for (int j=0; j<A[k][i].size(); j++)
{
do_something_on_A(A[k][i][j]);
}
}
}
double B[10][8][5];
for (int k=0; k<10; k++)
{
for (int i=0; i<8; i++)
{
for (int j=0; j<5; j++)
{
do_something_on_B(B[k][i][j]);
}
}
}
Run Code Online (Sandbox Code Playgroud)
你for-for-for经常在我们的代码中看到这种循环.如何使用宏来定义for-for-for循环,这样我每次都不需要重写这种代码?有一个更好的方法吗?
我是tensorflow的新手,我从官方的MNIST示例代码开始学习tensorflow的逻辑.但是,我感觉不太好的一件事是,MNIST示例将原始数据集提供为一些压缩文件,其格式对于初学者来说并不清楚.这种情况也适用于Cifar10,它将数据集作为二进制文件提供.我认为在实际的深度学习任务中,我们的数据集可能是很多图像文件,例如*.jpg或*.png在目录中,我们还有一个文本文件记录每个文件的标签(如ImageNet数据集).我以MNIST为例.
MNIST包含50k大小的训练图像28 x 28.现在让我们假设这些图像是jpg格式,并存储在目录中./dataset/.在./dataset/,我们有一个文本文件label.txt存储每个图像的标签:
/path/to/dataset/
image00001.jpg
image00002.jpg
... ... ... ...
image50000.jpg
label.txt
Run Code Online (Sandbox Code Playgroud)
这label.txt是这样的:
#label.txt:
image00001.jpg 1
image00002.jpg 0
image00003.jpg 4
image00004.jpg 9
... ... ... ...
image50000.jpg 3
Run Code Online (Sandbox Code Playgroud)
现在我想使用Tensorflow来训练具有这些数据集的单层模型.任何人都可以帮助提供一个简单的代码片段吗?
当我编写LeetCode问题N-Queens时,会发现这种现象.
我有两个版本的接受代码,唯一的区别是我存储哈希表的方式,一个是使用vector<int>而另一个是使用vector<bool>.具体来说,两个版本的代码如下:
vector<int>运行时间:4毫秒
class Solution {
public:
void dfs(vector<string>& crtrst, vector<vector<string>>& finalrsts, int row, vector<int>& mup, vector<int>& m45dgr, vector<int>& m135dgr)
{
int n = crtrst.size();
if (row == n)
{
finalrsts.push_back(crtrst);
return;
}
for (int j=0; j<n; j++)
{
if (mup[j] && m45dgr[j-row+n-1] && m135dgr[row+j])
{
crtrst[row][j] = 'Q';
mup[j] = m45dgr[j-row+n-1] = m135dgr[row+j] = 0;
dfs(crtrst,finalrsts,row+1,mup,m45dgr,m135dgr);
crtrst[row][j] = '.';
mup[j] = m45dgr[j-row+n-1] = m135dgr[row+j] = 1;
}
}
}
vector<vector<string>> solveNQueens(int …Run Code Online (Sandbox Code Playgroud) 我正在查看此示例中的代码:fully_connected_reader.py
我对147行和148行感到困惑:
init_op = tf.group(tf.initialize_all_variables(),
tf.initialize_local_variables())
Run Code Online (Sandbox Code Playgroud)
我不知道哪些变量all variables,哪些是local variables.有任何想法吗?
我有一个.obj存储三角形网格的文件。我希望记录每个三角形面的颜色。有没有办法将这些信息保存到.obj文件中,以便像 MeshLab 这样的软件可以识别和可视化它?
我的工作站中有 3 个显卡,其中一个是 Quadro K620,另外两个是 Titan X。现在我想在其中一个显卡上运行我的张量流代码,这样我就可以让其他显卡闲置起来任务。
但是,无论设置tf.device('/gpu:0')还是tf.device('/gpu:1'),我发现第 1 个 Titan X 显卡始终可以工作,我不知道为什么。
import argparse
import os
import time
import tensorflow as tf
import numpy as np
import cv2
from Dataset import Dataset
from Net import Net
FLAGS = None
if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.add_argument('--foldername', type=str, default='./data-large/')
parser.add_argument('--batch_size', type=int, default=100)
parser.add_argument('--num_epoches', type=int, default=100)
parser.add_argument('--learning_rate', type=float, default=0.5)
FLAGS = parser.parse_args()
net = Net(FLAGS.batch_size, FLAGS.learning_rate)
with tf.Graph().as_default():
# Dataset is a class for encapsulate the …Run Code Online (Sandbox Code Playgroud) 我使用 Tensorflow 的队列作为训练网络的输入。我设置num_epoches为10和batch_size100。由于我不知道TFRecords文件中存储了多少样本,因此我不知道一个epoch完成了多少次迭代。
我知道有一种方法可以tf.python_io.tf_record_iterator用来预读 TFRecords 文件,以获得样本总数。但是当 TFRecords 文件很大时,这种方法是不好的,因为它必须循环整个文件并计算样本。我想知道Tensorflow是否有自己的方式报告一个epoch结束?
我有一个存储文件名的表,例如:
1.jpg
5.jpg
4.jpg
10.jpg
2.jpg
Run Code Online (Sandbox Code Playgroud)
现在我想对它进行排序.我使用了以下代码:
table.sort(myTable)
结果是
1.jpg
10.jpg
2.jpg
4.jpg
5.jpg
Run Code Online (Sandbox Code Playgroud)
但是,我想这样排序:
1.jpg
2.jpg
4.jpg
5.jpg
10.jpg
Run Code Online (Sandbox Code Playgroud)
所以我写了一个自定义比较函数:
function compare(a, b)
return tonumber(a) < tonumber(b)
end
Run Code Online (Sandbox Code Playgroud)
但结果是:attempt to compare two nil values.那么我怎样才能实现呢?
我有一个类Base,想编写一个Derive只继承Base. 有什么方便的方法可以做到这一点吗?
例如,
class Base
{
...
void fooA();
void fooB();
...
}
Run Code Online (Sandbox Code Playgroud)
我希望定义一个class Derive继承除fooBfrom之外的所有成员的Base.
我写了一个简单的 opencv 项目,只包含一个main.cpp文件:
// main.cpp
#include <opencv/cv.h>
#include <opencv2/opencv.hpp>
int main()
{
cv::Mat I = cv::imread("img.png");
cv::imshow("img",I);
cv::waitKey(0);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
然后为了构建它,我写了一个CMakeLists.txt这样的,实际上是从http://docs.opencv.org/doc/tutorials/introduction/linux_gcc_cmake/linux_gcc_cmake.html复制过来的
cmake_minimum_required(VERSION 2.8)
project( DisplayImage )
find_package( OpenCV REQUIRED )
add_executable( DisplayImage main.cpp )
target_link_libraries( DisplayImage ${OpenCV_LIBS} )
Run Code Online (Sandbox Code Playgroud)
在终端中,首先我运行cmake .并Makefile生成了一个。然后我运行make并收到以下错误:
fatal error:
'opencv2/opencv.hpp' file not found
#include <opencv2/opencv.hpp>
^
......
Run Code Online (Sandbox Code Playgroud)
似乎编译器找不到 OpenCV 包含目录。但我不知道将它添加到CMakeLists.txt. 我的平台是Mac OS X的10.10,和OpenCV包括和lib文件已被安装在/usr/local/include与/usr/local/lib已。但是,在 Ubuntu 中,编译器可以找到它并成功构建项目。
那么CMakeLists.txt …