调用通达信自动数据下载接口,tensorflow的c++接口调用pb模型文件
代码demo
import 通达信自动数据下载接口,tensorflow as tf
import numpy as np
import os
tf.app.flags.DEFINE_integer('training_iteration', 1000,'number of training iterations.') # 配置参数-迭代次数
tf.app.flags.DEFINE_integer('model_version', 1, 'version number of the model.') # 配置参数-模型版本
tf.app.flags.DEFINE_string('work_dir', 'model/', 'Working directory.') # 配置参数-模型存储路径
FLAGS = tf.app.flags.FLAGS
# 创建模型存储路径
if(not os.path.exists(FLAGS.work_dir)):
os.makedirs(FLAGS.work_dir)
sess = tf.InteractiveSession()
x = tf.placeholder('float', shape=[None, 5],name='inputs') # 创建输入层 5维float
y_ = tf.placeholder('float', shape=[None, 1]) # 创建输出层 1维float
w = tf.get_variable('w', shape=[5, 1], initializer=tf.truncated_normal_initializer) # 创建网络层链接 w 并初始化
b = tf.get_variable('b', shape=[1], initializer=tf.zeros_initializer) # 创建网络层链接 b 并初始化
sess.run(tf.global_variables_initializer())
y = tf.add(tf.matmul(x, w) , b,name='outputs') # 前向计算
ms_loss = tf.reduce_mean((y - y_) ** 2) # 误差平方损失值
train_step = tf.train.GradientDescentOptimizer(0.005).minimize(ms_loss) # 梯度下降法 更新
train_x = np.random.randn(1000, 5)
# let the model learn the equation of y = x1 * 1 + x2 * 2 + x3 * 3
train_y = np.sum(train_x * np.array([1, 2, 3,4,5]) + np.random.randn(1000, 5) / 100, axis=1).reshape(-1, 1)
for i in range(FLAGS.training_iteration):
loss, _ = sess.run([ms_loss, train_step], feed_dict={x: train_x, y_: train_y})
if i%100==0:
print('loss is:',loss)
graph = tf.graph_util.convert_variables_to_constants(sess, sess.graph_def,['inputs', 'outputs']) # 存储变量为常数值
tf.train.write_graph(graph, '.', FLAGS.work_dir + 'liner.pb',as_text=False) # 保存模型文件.pb
print('Done exporting!')
print('Done training!')
一般是不报错的如果报错要么是依赖项没有到时候一个个装就好了也有个错误是说protoc版本太低这时候更新一下protoc就好了
protobuf下载及安装:
下载地址:https://github.com/google/protobuf/releases ,我下载的是3.6.0版本,如果你是下载新版的通达信自动数据下载接口,tensorflow,请确保protobuf版本也是最新的,安装步骤:
cd /protobuf
./configure
make
sudo make install
安装之后查看protobuf版本:
protoc --version
上面的环境就是调用通达信自动数据下载接口,tensorflow的c++接口需要的文件了.
有显卡的执行sudobazelbuild--config=opt--config=cuda//通达信自动数据下载接口,tensorflow:lib通达信自动数据下载接口,tensorflow_cso没有显卡的执行sudobazelbuild--config=opt//通达信自动数据下载接口,tensorflow:lib通达信自动数据下载接口,tensorflow_cso
通达信自动数据下载接口,tensorflow下载以及编译:
下载地址:https://githucom/bazelbuild/bazel/releasesmac下载installer-darwin、linux用installer-linux
python编译生成通达信自动数据下载接口,tensorflow模型文件
使用make命令进行编译。
CMakeLists.txt文件内容如下:
cmake_minimum_required(VERSION 3.10)
project(cpp通达信自动数据下载接口,tensorflow)
set(CMAKE_CXX_STANDARD 11)
link_directories(/home/lp/projects/safety/通达信自动数据下载接口,tensorflow_c/通达信自动数据下载接口,tensorflow_cpp/通达信自动数据下载接口,tensorflow)
include_directories(
/home/lp/projects/safety/通达信自动数据下载接口,tensorflow_c/通达信自动数据下载接口,tensorflow-master/通达信自动数据下载接口,tensorflow
/home/lp/projects/safety/通达信自动数据下载接口,tensorflow_c/通达信自动数据下载接口,tensorflow-master/通达信自动数据下载接口,tensorflow/bazel-genfiles
/home/lp/projects/safety/通达信自动数据下载接口,tensorflow_c/通达信自动数据下载接口,tensorflow-master/通达信自动数据下载接口,tensorflow/bazel-bin/通达信自动数据下载接口,tensorflow
/home/lp/projects/safety/通达信自动数据下载接口,tensorflow_c/eigen3
)
add_executable(cpp通达信自动数据下载接口,tensorflow main.cpp ann_model_loader.h model_loader_base.h ann_model_loader.cpp)
target_link_libraries(cpp通达信自动数据下载接口,tensorflow 通达信自动数据下载接口,tensorflow_cc 通达信自动数据下载接口,tensorflow_framework)
下载安装bazel工具
我们复制到的地方我们要记住,以便后面使用
编译成功会有下面的提示
....
Target //通达信自动数据下载接口,tensorflow:lib通达信自动数据下载接口,tensorflow_cc.so up-to-date:
bazel-bin/通达信自动数据下载接口,tensorflow/lib通达信自动数据下载接口,tensorflow_cc.so
INFO: Elapsed time: 1192.883s, Critical Path: 174.02s
INFO: 654 processes: 654 local.
INFO: Build completed successfully, 656 total actions
mkdir /usr/local/include/tf
cp -r bazel-genfiles/ /usr/local/include/tf/
cp -r 通达信自动数据下载接口,tensorflow /usr/local/include/tf/
cp -r third_party /usr/local/include/tf/
cp bazel-bin/通达信自动数据下载接口,tensorflow/lib通达信自动数据下载接口,tensorflow_cc.so /usr/local/lib/
cp bazel-bin/通达信自动数据下载接口,tensorflow/lib通达信自动数据下载接口,tensorflow_framework.so /usr/local/lib
执行./configure根据提示配置一下环境变量这个官网上有类似的应该能看到.要GPU的话要下载nvidia驱动的尽量装最新版的驱动吧还有cudnnversion为5以上的这些在官网都有提及的
bazel下载
注意:上述过程中会链接外网地址,所以需要开启翻墙器使用.并且编译过程会大量占用cpu和内存,所以建议关闭其他占用应用
在linux平台下使用CMake生成Makefile并编译的流程如下:
第一种方式使用pip安装
python下安装通达信自动数据下载接口,tensorflow比较简单,
下载TensorFlow,使用gitclone--recursivehttps://githucom/通达信自动数据下载接口,tensorflow/通达信自动数据下载接口,tensorflowgit非常慢,建议还是直接到网址https://githucom/通达信自动数据下载接口,tensorflow/通达信自动数据下载接口,tensorflow中打包下载
安装以后还需要cuda显卡驱动,可参考https://www.cnblogs.com/fanfzj/p/852172html
调用通达信自动数据下载接口,tensorflowc++接口,首先要编译通达信自动数据下载接口,tensorflow,要装bazel,要装protobuf,要装Eigen,整体过程还是比较麻烦,bazel安装过程就不说了,下面慢慢来说明下安装步骤。
如果想使用gpu加速,还需要安装
Eigen(矩阵库下载):
wget http://bitbucket.org/eigen/eigen/get/3.3.4.tar.bz2
下载之后解压放在重新命名为eigen3,我存放的路径是,/home/lp/projects/safety/通达信自动数据下载接口,tensorflow_c/eigen3
或者直接到网址https://bitbucket.org/eigen/eigen/downloads/?tab=tags中选择版本下载
如果是c版本的通达信自动数据下载接口,tensorflow,把'lib通达信自动数据下载接口,tensorflow_cc'改成'lib通达信自动数据下载接口,tensorflow'这句命令其实是bazel的用法具体要生成哪个可以'vim$(TF_ROOT_PAT/通达信自动数据下载接口,tensorflow/BUILD'查看编译需要挺久的大概大半个小时吧我记得,这里编译要有sudo权限,否则编译过程会报错。
如果只想专用cpu加速,安装
先制作makefile文件以便以后运行
我下载的是bazel-0.12-installer-linux-x86_6sh,下载完后
通达信自动数据下载接口,tensorflow的c++接口
python生成通达信自动数据下载接口,tensorflow的pb模型文件
文章为作者独立观点,不代表股票交易接口观点