小编Cme*_*tin的帖子

张量尺寸的范围 - tf.range

我正在尝试为我正在实现的NN定义一个操作,但为了这样做,我需要迭代一个张量的维度.我在下面有一个小工作示例.

X = tf.placeholder(tf.float32, shape=[None, 10])
idx = [[i] for i in tf.range(X.get_shape()[0])]
Run Code Online (Sandbox Code Playgroud)

这会产生错误说明

ValueError: Cannot convert an unknown Dimension to a Tensor: ?
Run Code Online (Sandbox Code Playgroud)

使用相同的代码但使用tf.shape相反的代码时,会导致代码存在

X = tf.placeholder(tf.float32, shape=[None, 10])
idx = [[i] for i in tf.range(tf.shape(X)[0])]
Run Code Online (Sandbox Code Playgroud)

给出以下错误

TypeError: 'Tensor' object is not iterable.
Run Code Online (Sandbox Code Playgroud)

我正在实现这个NN的方式,batch_size直到训练函数(在代码末尾)才定义.这就是我自己构建图形的地方,因此在batch_size这一点上是未知的,并且它无法修复,因为训练batch_size和测试集batch_sizes是不同的.

解决这个问题的最佳方法是什么?这是保持我的代码运行的最后一件事,因为我让它运行一个固定的batch_size,虽然这些结果没用.我一直在倾注TensorFlow API文档和堆栈溢出数周无济于事.

我也尝试将占位符输入到范围内,所以当我运行测试/训练集时,代码将是以下

X = tf.placeholder(tf.float32, shape=[None, 10])
bs = tf.placeholder(tf.int32)

def My_Function(X):
    # Do some stuff to X
    idx = [[i] for i in …
Run Code Online (Sandbox Code Playgroud)

python neural-network deep-learning tensorflow

6
推荐指数
1
解决办法
2891
查看次数

C++ 从main中的头文件调用函数

我正在写一个积分计算器。我试图让 main.cpp 文件从 functions.h.cpp 文件中的函数类中读取函数。对于简单的情况,我有一个定义如下的函数:

double square(double aX)
 {
   return aX*aX;
 }
Run Code Online (Sandbox Code Playgroud)

当我将它包含在主文件中时,这个函数可以工作,但当我尝试从主文件中调用它时,它不想工作,当它在函数文件中时。这是我拥有的代码:

Main.cpp 文件:

#include <iostream>
#include "IntegralCalculator.h"
#include "functions.h"

using namespace std;

int main()
  {
    IntegralCalculator Function(square);
    Function.print();
  }
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,还有另一个被调用的类IntegralCalculator,它实际上进行了积分的计算,尽管当函数定义包含在 main 中并且函数作为参数传递时,它应该没有错。该functions.h文件定义如下:

#ifndef FUNCTIONS_H
#define FUNCTIONS_H

#include <iostream>
#include <cmath>
#include "IntegralCalculator.h"


class functions : public IntegralCalculator
 {
  public:
   functions();
   double square(double aX);

 };

#endif
Run Code Online (Sandbox Code Playgroud)

functions.cpp文件定义如下:

#include <iostream>
#include <cmath>
#include "functions.h"


double functions::square(double aX)
 {
   return aX*aX;
 }
Run Code Online (Sandbox Code Playgroud)

我知道现在我不需要这个<cmath>库,尽管当我添加它们时我会需要它来处理更复杂的函数。 …

c++ inheritance scope header function

4
推荐指数
1
解决办法
5万
查看次数