TensorFlow.jl 基础使用
- using TensorFlow
- # 定义一个 Session
- sess = TensorFlow.Session()
- # 定义一个常量和变量
- x = TensorFlow.constant([1])
- y = TensorFlow.Variable([2])
- # 定义一个计算
- w = x + y
- # 执行计算过程
- run(sess, TensorFlow.global_variables_initializer())
- res = run(sess, w)
- # 输出结果
- println(res)
MNIST数字分类
这个例子来自于 TensorFlow.jl 文档 ,可以用于对比 python 版本的 API.
- # 使用自带例子中的 mnist_loader.jl 加载数据
- include(Pkg.dir("TensorFlow", "examples", "mnist_loader.jl"))
- loader = DataLoader()
- # 定义一个 Session
- using TensorFlow
- sess = Session()
- # 构建 softmax 回归模型
- x = placeholder(Float32)
- y_ = placeholder(Float32)
- W = Variable(zeros(Float32, 784, 10))
- b = Variable(zeros(Float32, 10))
- run(sess, global_variables_initializer())
- # 预测类和损失函数
- y = nn.softmax(x*W + b)
- cross_entropy = reduce_mean(-reduce_sum(y_ .* log(y), axis=[2]))
- # 开始训练模型
- train_step = train.minimize(train.GradientDescentOptimizer(.00001), cross_entropy)
- for i in 1:1000
- batch = next_batch(loader, 100)
- run(sess, train_step, Dict(x=>batch[1], y_=>batch[2]))
- end
- # 查看结果并评估模型
- correct_prediction = indmax(y, 2) .== indmax(y_, 2)
- accuracy=reduce_mean(cast(correct_prediction, Float32))
- testx, testy = load_test_set()
- println(run(sess, accuracy, Dict(x=>testx, y_=>testy)))