Keras随笔

Keras简介

     更新自己跟着各大教程学习的笔记,后续不断更新

1、keras兼容了Tensorflow,Theano。建议学习顺序是先有Tensorflow和Theano的基础以后,再学习keras,因为keras是以“模型”为基础的,命令行高度简洁,但是也说明了高度封装。

Tensorflow随笔

1、TensorFlow 是一个开放源代码软件库,基于数据流图。每一个节点表示一种算子,每种算子对应一种数学运算。节点和节点之间的边表示参与计算的高维数组数据,成为Tensor,Tensor相当于数据在Tensor上流动。一维的Tensor是向量,二维是矩阵,一般我们使用四维表示一个mini-batch的图片:[batch,height,width,channel]。TensorFlow用于进行高性能数值计算,是google开发的一款神经网络的python外部结构包,更多的细节,参考官方文档。

2、Tensorflow的安装

2.1 安装可以分为在GPU上安装和在CPU上安装,安装的方法也有pip安装,Virtualenv安装,Anaconda和Docker以及源安装。
2.2 这里只介绍CPU安装,注意要先安装pip,python3中自带pip。具体的命令是:pip install tensorflow。

3、一些简单的知识

3.1 在回归模型中,训练神经网络就是使得代价函数最小,使预测函数去逼近样本点,得到模型的预测曲线。训练好以后,就算再给一个新点,也能给出遵循这个模型的输出。

4、tensorflow如何处理数据结构:

4.1、CNN的基本结构:输入层——>隐藏层(由最基本的感知机构成,有三个隐藏层以上,就为深度神经网络)——>输出层——>梯度下降法——>改变隐藏层的参数。
4.2、tensorflow 使用的是date flow graph(数据流图)进行计算,数据的存在形式是张量(tensor),训练模型时不断从数据流图中的一个点flow到另外一个点。
4.3、张量(tensorflow):我们平时使用的数的扩充概念,零阶张量就是标量,一阶张量就是一维向量,二阶张量就是矩阵,以此类推

5、Session会话

5.1session是驱动TensorFlow系统执行计算交互的入口。Session负责完成多计算设备或集群分布式的节点布置和数据传输节点的添加。并负责将子图分配各相应的执行器单元来运行。具体步骤简化为:构造计算图,即初始化b,w,x —>创建session —>run
5.2 session.run(fetch,feed_dict) :是执行会话控制的,返回的是fetch的结果,返回值对应fetch的类型,fetch是一个元素,就返回一个元素,fetch是一个列表,就返回一个列表。run一次,返回一个结果。fetch是算子,feed_dict是字典结构,feed_dict的key是占位符placeholder名称,value是占位符的值。将占位符的值传入到fetch中,返回计算得出的值。
7个Python中常用的库:numpy,pandas,Matplotlib,PIL,IPython&Jupyter,sscikit-learn(sklearn),OpenCV。
5.3关于placeholder:
Tensorflow设计了数据Feed机制,也就是说计算程序并不会直接交互执行,而在声明过程只做计算图的构建,所以,此时并不会触碰真实的数据,而只是通过placeholder算子声明一个输入数据的占位符,而后面真正运行计算时,采用数据替换占位符。placeholder

#placeholder例子
import tensorflow as tf 
input_1 = tf.placeholder(tf.float32)
input_2 = tf.placeolder(tf.float32)
output = tf.mul(input_1,input_2)
#没有声明变量,不用初始化变量
#声明了placeholder,sess.run()里面就要有对应的参数feed_dict
with tf.Session() as sess:
	feed_dict = {"input_1":[1],
				" input_2":[2]}
	print(sess.run(output,feed_dict))

6、逼近符合y=0.1*x+0.3的数据点

import tensorflow as tf
import numpy as np

# 创建数据
x_data = np.random.rand(100).astype(np.float32)
y_data = x_data*0.1 + 0.3
#变量只有用Variable声明时,才是变量
Weights = tf.Variable(tf.random_uniform([1], -1.0, 1.0))
biases = tf.Variable(tf.zeros([1]))
y = Weights*x_data + biases
loss = tf.reduce_mean(tf.square(y-y_data))
#更新参数算法用的SGD,学习速率是0.5
optimizer = tf.train.GradientDescentOptimizer(0.5)
train = optimizer.minimize(loss)
#激活整个图
init = tf.global_variables_initializer() 
sess = tf.Session()
#使整个图流起来
sess.run(init)          # Very important
#循环
for step in range(201):
    sess.run(train)
    if step % 20 == 0:
        print(step, sess.run(Weights), sess.run(biases))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值