c ++ 14引入了通用lambdas,可以编写以下内容:
auto func = [](auto a, auto b){
return a + b;
};
auto Foo = func(2, 5);
auto Bar = func("hello", "world");
Run Code Online (Sandbox Code Playgroud)
很明显,这个通用lambda func就像模板化函数func一样有效.
为什么C++委员会决定为通用lamda添加模板语法?
我正在学习TensorFlow并且正在实施一个简单的神经网络,如在TensorFlow文档中的MNIST for Beginners中所解释的那样.这是链接.正如预期的那样,准确率约为80-90%.
然后,使用ConvNet的同一篇文章是MNIST for Experts.而不是实现我决定改进初学者部分.我知道神经网络以及它们如何学习以及深层网络比浅层网络表现更好的事实.我在MNIST for Beginner中修改了原始程序,以实现一个神经网络,其中包含2个隐藏层,每个层包含16个神经元.
它看起来像这样:
import tensorflow as tf
from tensorflow.examples.tutorials.mnist import input_data
mnist = input_data.read_data_sets('MNIST_data', one_hot=True)
x = tf.placeholder(tf.float32, [None, 784], 'images')
y = tf.placeholder(tf.float32, [None, 10], 'labels')
# We are going to make 2 hidden layer neurons with 16 neurons each
# All the weights in network
W0 = tf.Variable(dtype=tf.float32, name='InputLayerWeights', initial_value=tf.zeros([784, 16]))
W1 = tf.Variable(dtype=tf.float32, name='HiddenLayer1Weights', initial_value=tf.zeros([16, 16]))
W2 = tf.Variable(dtype=tf.float32, name='HiddenLayer2Weights', initial_value=tf.zeros([16, 10]))
# All the biases for …Run Code Online (Sandbox Code Playgroud) python machine-learning neural-network deep-learning tensorflow
我有一个使用递归打印斐波纳契数列的程序.有更好的方法,但我被要求使用递归,所以我必须这样做.
这是程序:
#include <stdio.h>
#define TERMS 10
long fibo(int);
int main(void){
for(int i = 1; i <= TERMS; i++) {
printf("%ld", fibo(i));
}
return 0;
}
long fibo(int n){
if (n < 3) {
return 1;
}
else {
return fibo(n - 1) + fibo(n - 2);
}
}
Run Code Online (Sandbox Code Playgroud)
我知道这对于Fibonacci系列来说真的是一个糟糕的方法,从上面可以清楚地看到,因为TERMS超过35,该程序需要花费大量时间才能完成.
我已经完成了这个答案,无法理解他们是如何解决的,但它看起来像
fibo(int n)的时间复杂度为O(2 ^ n)
我可能也完全错了,但我想要的只是:
这个完整程序的时间复杂度是什么,简要解释一下你如何计算它?
如果你有一个更好的方法来计算使用递归计算Fibonacci,也欢迎.
complexity-theory big-o time-complexity code-complexity asymptotic-complexity
假设我有一个类似的模板类
template<class T> class Foo{
T a;
auto baz(){
return 4.2f;
}
};
int main(){
Foo<int> bar;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
是否有一个工具可以将这段代码转换为实际的类,并提供如下输出:
class Foo{
int a;
float baz(){
return 4.2f;
}
};
// main goes below this line
Run Code Online (Sandbox Code Playgroud)
auto用推导的类型替换所有参数和模板参数的工具。
我当时正在使用模板,并且很好奇是否有这样的工具,因为它可能对学习类型推断有好处?