tensorboard应用学习
来源:互联网 发布:php中ajax跨域解决办法 编辑:程序博客网 时间:2024/06/03 22:08
这个方法不错 思路比较清晰
http://blog.csdn.net/phdat101/article/details/52538061 [重要]
要运行tensorboard应用直接在命令行输入 tensorboard --logdir /home.....
截至62相关的测试代码:
# -*- coding: UTF-8 -*- '''Created on 2017年12月7日'''import pandas as pdfrom sklearn.model_selection import train_test_splitimport tensorflow as tfimport numpy as np#从CSV文件中读入数据data = pd.read_csv('train.csv')# data.info()#取部分特征字段用于分类,并将所有缺失的字段补充为0#对Sex字段进行正规化处理data['Sex'] = data['Sex'].apply(lambda s:1 if s == 'male' else 0) #男为1,女为0data = data.fillna(0) #缺失的字段全部补充为0dataset_X = data[['Sex','Age','Pclass','SibSp','Parch','Fare']]dataset_X = dataset_X.as_matrix() #转换成矩阵# print dataset_X#两种分类分别是幸存和死亡,即'Survived'和'Deceased'data['Deceased'] = data['Survived'].apply( lambda s: int (not s)) #取非dataset_Y = data[['Deceased','Survived']]dataset_Y = dataset_Y.as_matrix() #one-hot encoding'# print dataset_Y'#scikit-learn库中提供了用于切分数据集的工具函数train_test_split,随机打乱数据集后按比列拆分数据集#使用函数train_test_split将标记数据切分为训练数据集和验证数据集,其中验证数据集占20%X_train, X_validation, Y_train, Y_validation = train_test_split(dataset_X, dataset_Y, test_size = 0.2, random_state = 42 )#设置 random_state = 42之后,就是代表多次运行程序后得到的随机数都是一样的,若设不同的值或者不设则随机数就是不一样的# print Y_validation# print len(X_train)# a = [[1,2],[2,3],[3,4]]# print len(a)#接下来,使用TensorFlow构建计算图--------------------------------------------------------------------------------------------------------------------------------------#使用placeholder声明占位符#声明输入数据占位符#shape参数的第一个元素为none,表示可以同时放入任意条记录X = tf.placeholder(tf.float32, shape = [None, 6])Y = tf.placeholder(tf.float32, shape = [None, 2])#声明参数变量W = tf.Variable(tf.random_normal([6, 2]), name = 'weights')b = tf.Variable(tf.zeros([2]), name = 'bias')# use saver to save and restore modelsaver = tf.train.Saver() #保存声明之前的所有变量#构造前向传播计算图y_pred = tf.nn.softmax(tf.matmul(X, W) + b)#声明代价函数cross_entropy = - tf.reduce_sum(Y*tf.log(y_pred+1e-10), reduction_indices = 1) #reduction_indices指示按照哪个维度求和 *对应元素的乘积#这里表示把每行的2个值加起来# a = [1, 2]# b = [3, 4]# aa = np.array(a)# bb =np. array(b)# print aa# print bb# print aa*bbcost = tf.reduce_mean(cross_entropy) #代价函数使用了cross-entropytf.scalar_summary('cost',cost) #使用梯度下降算法最小化代价,系统自动构建反向传播部分的计算图train_op = tf.train.GradientDescentOptimizer(0.001).minimize(cost) #此处learing rate设为0.01 且仅仅使用了梯度下降算法#计算图的声明完成-------------------至此计算图结束#构建训练迭代过程with tf.Session() as sess: #session对象负责把运行环境打包 #初始化所有变量 tf.initialize_all_variables().run() merged = tf.merge_all_summaries() #collect the tf.xxxxx_summary writer = tf.train.SummaryWriter('/home/tensorBoardLog',sess.graph) # maybe many writers to show different curvs in the same figure #training loop for epoch in range(100): total_loss = 0. for i in range(len(X_train)): #len返回行数 #prepare feed data and run,这里相关于是使用随机梯度下降,对每一样本进来都进行参数更新 feed_dict = {X: [X_train[i]], Y:[Y_train[i]]} summary, _, loss = sess.run([merged, train_op, cost], feed_dict = feed_dict) #触发后端执行的入口,cost是tensor,不是优化算子,所以有值返回 total_loss += loss writer.add_summary(summary, epoch) print('Epoch: %04d, total loss = %-9f' % (epoch+1, total_loss)) #用验证数据集合评估模型的表现 pred = sess.run(y_pred, feed_dict = {X: X_validation}) print pred #argmax是找最大值的位置,后面的1指的是轴 correct = np.equal(np.argmax(pred, 1), np.argmax(Y_validation, 1))# print correct# cao = correct.astype(np.float32)# print cao#astype指的是类型转换, boolen型换成float型,mean表示加起来,除以个数,这里是1 和 0, 所以可以 accuracy = np.mean(correct.astype(np.float32)) print ('Accuracy on validation set: %.9f' % accuracy)# save_path = saver.save(sess, "model.ckpt" ) #保存训练好的参数# #再开一个session进行最后的测试# with tf.Session() as sess2:# #predict on test data# testdata = pd.read_csv('test.csv')# testdata = testdata.fillna(0)# testdata['Sex'] = testdata['Sex'].apply(lambda s: 1 if s == 'male' else 0)# X_test = testdata[['Sex', 'Age', 'Pclass', 'SibSp', 'Parch', 'Fare' ]]# saver.restore(sess2, "model.ckpt" ) #加载变量# predictions = np.argmax(sess2.run(y_pred, feed_dict = {X: X_test}),1)# print predictions# submission = pd.DataFrame({# 'PassengerId': testdata['PassengerId'],# 'Survived': predictions# })# submission.to_csv('Titanic-submission-miao.csv', index = False)
阅读全文
0 0
- tensorboard应用学习
- tensorboard应用学习
- Tensorboard学习
- TensorBoard学习
- Tensorflow深度学习笔记(七)-Tensorboard应用
- Tensorflow深度学习笔记(八)-Tensorboard应用
- Tensorflow学习:Tensorboard可视化
- TensorBoard可视化学习
- 学习笔记TF039:TensorBoard
- TensorBoard:可视化学习
- Tensorflow学习之TensorBoard
- Tensorflow学习--tensorboard
- tensorboard学习记录
- TensorBoard可视化学习
- Tensorboard使用学习笔记
- 深度学习框架TensorFlow学习与应用(五)——TensorBoard结构与可视化
- tensorboard
- tensorboard
- Python绘制饼状图
- SPRING JDBC连接池设置
- java父子类异常处理规则
- linux命令缩写
- 谈谈form-data请求格式
- tensorboard应用学习
- 软件各种系统架构图
- swiper Tab切换
- 32个FPGA开源网站
- 12个球,其中有一个质量不一样的小球,一个天平,称三次,找到这个质量不一样的小球。
- 输出不同路径下的所有文件名,放到map中
- freemarker取list的size
- H5游戏利用社交平台和其传播属性
- springcloud与dubbo的性能对比