tensorflow例程


拟合曲线

#coding=utf-8
#https://www.cnblogs.com/qcloud1001/p/6739501.html
import tensorflow as tf

#输入x、y_,估计W、b
x = tf.placeholder(tf.float32)
W = tf.Variable(tf.zeros([1]))
b = tf.Variable(tf.zeros([1]))
y_ = tf.placeholder(tf.float32)

y = W * x + b

lost = tf.reduce_mean(tf.square(y_-y))
optimizer = tf.train.GradientDescentOptimizer(0.0000001)
train_step = optimizer.minimize(lost)

sess = tf.Session()
init = tf.global_variables_initializer()
sess.run(init)

steps = 1000
for i in range(steps):
	xs = [i]
	ys = [3 * i]
	feed = { x: xs, y_: ys }
	sess.run(train_step, feed_dict=feed)
	if i % 100 == 0 :
		print "After %3d iteration: W:%f, b:%f, lost:%f." \
			 % (i,sess.run(W),sess.run(b),sess.run(lost, feed_dict=feed))

 eigenTensor

//http://eigen.tuxfamily.org/index.php?title=Tensor_support

#include <iostream>
#include <stdlib.h>
#include <unsupported/Eigen/CXX11/Tensor>
using namespace std;

int main(int argc, char **argv){
	Eigen::Tensor<double, 3> test(2,2,2);
	//第一层(第三维)
	test(0,0,0)=1;
	test(0,1,0)=2;
	test(1,0,0)=3;
	test(1,1,0)=4;
	//第二层(第三维)
	test(0,0,1)=5;
	test(0,1,1)=6;
	test(1,0,1)=7;
	test(1,1,1)=8;
	cout<<test<<endl;

	Eigen::Tensor<double, 6> epsilon1(2,2,2,2,2,2);
	int x=1;
	for (int i = 0; i < 2; i++)//6th
	  for (int j = 0; j < 2; j++)//5th
	    for (int k = 0; k < 2; k++)//4th
		 for (int l = 0; l < 2; l++)//3rd
		   for (int m = 0; m < 2; m++)
			for (int n = 0; n < 2; n++)
				epsilon1(m,n,l,k,j,i)=x++;
	cout<<epsilon1<<endl;
//-------------------------------

	Eigen::Tensor<double, 3> epsilon(3,3,3);
	epsilon.setZero();
	epsilon(0,1,2) = 1;
	epsilon(1,2,0) = 1;
	epsilon(2,0,1) = 1;
	epsilon(1,0,2) = -1;
	epsilon(2,1,0) = -1;
	epsilon(0,2,1) = -1;
	Eigen::Tensor<double, 4> grassmannIdentity(3,3,3,3);
	grassmannIdentity.setZero();
	// this is not the most efficient way to write such a product,
	// but is the only way possible with the current feature set
	for (int i = 0; i < 3; i++) {
	  for (int j = 0; j < 3; j++) {
	    for (int k = 0; k < 3; k++) {
		 for (int l = 0; l < 3; l++) {
		   for (int m = 0; m < 3; m++) {
		     grassmannIdentity(i,j,l,m) += epsilon(i,j,k) * epsilon(k,l,m);
		   }
		 }
	    }
	  }
	}

	// verify
	for (int i = 0; i < 3; i++) {
	  for (int j = 0; j < 3; j++) {
	    for (int l = 0; l < 3; l++) {
		 for (int m = 0; m < 3; m++) {
		   assert(grassmannIdentity(i,j,l,m) == (int(i == l) * int(j == m) - int(i == m) * int(j == l)));
		 }
	    }
	  }
	}

	// dimensionalities
	assert(epsilon.dimension(0) == 3);
	assert(epsilon.dimension(1) == 3);
	assert(epsilon.dimension(2) == 3);
	auto dims = epsilon.dimensions();
	assert(dims[0] == 3);
	assert(dims[1] == 3);
	assert(dims[2] == 3);
}

 

TensorFlow MNIST例程是一个非常经典的入门示例,用于演示如何使用TensorFlow库来构建和训练一个简单的卷积神经网络,以识别手写数字图像。这个例程在优快云上可以进行下载。 该例程主要包括以下步骤: 1. 导入相关的Python库和TensorFlow模块,包括数据集导入、模型定义、运行会话和模型评估所需的函数和类。 2. 导入MNIST手写数字数据集,该数据集包含60000个训练样本和10000个测试样本。 3. 定义卷积神经网络模型,包括卷积层、池化层和全连接层。通过调整网络的层数和每层的神经元数量,可以改变模型的性能。 4. 定义损失函数和优化器,用于最小化模型在训练数据上的预测误差。常用的损失函数包括交叉熵和平方差损失。 5. 创建会话,并使用训练数据迭代多次对模型进行训练。每次迭代中,通过向模型输入训练数据和期望的输出标签,并调用优化器来更新模型的参数。 6. 在训练结束后,使用测试数据对模型进行评估,并计算预测准确率。 7. 最后,可以将经过训练的模型应用于新的手写数字图像进行预测,以验证模型的泛化能力。 下载该例程后,可以通过在Python环境中运行该文件,逐步学习和理解各个部分的代码和功能。这个例程对于初学者来说是一个非常好的学习资源,可以帮助他们理解TensorFlow的基本使用方法和卷积神经网络的原理。同时,优快云上还有许多相关的教程和博客,可以进一步扩展和深入了解这个例程的细节和应用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值