中文官网 英文文档

C:\Users\holiday.keras 用来存放keras的dataset

与Keras关系

Tensorflow于Keras的关系,目前两者没啥区别

import tensorflow as tf tf.keras # 或者 from tensorflow import keras

即使 pip install keras 安装的依然是Tensorflow版本的Keras
Keras是TensorFlow的一个依赖(dependency)。而且,从设计上希望用户只透过TensorFlow来使用,即tf.keras。但由于Python本身的性质,你直接 import keras并不会报错,但并不是设计者的本意

数据类型

待优化张量

tf.Variable() 节省计算

tf.keras.Sequential()

这个API是tf.keras.models.Sequential的别名
Sequential groups a linear stack of layers into a tf.keras.Model. 组合一个线性的堆栈到model中
tf.keras.Sequential(
layers=None, name=None
)
Sequentialprovides training and inference features on this model. 提供一个可训练和推理的特征

model.compile() 训练的configures

compile(
optimizer=’rmsprop’, loss=None, metrics=None, loss_weights=None,
weighted_metrics=None, run_eagerly=None, **kwargs
)

model.fit() 模型开始训练

history = model.fit() 可以返回一个history

model.predict() 预测

tf.keras.layers

Dense() 定义FC层

model = tf.keras.Sequential([tf.keras.layers.Dense(10,input_shape=(3,), activation=’relu’)])

Flatten() 拉平

Dropout()

函数式API

可以实现多输入
x = keras.layers.Flatten()(input)
keras.layers. 系列都可以用这个方法

tf.keras 交叉熵

多分类和二分类的API不一样

网络容量

神经元越多,层数越多,神经网络拟合能力越强,但是训练速度、难度越大,越容易发生过拟合

  • 神经元增加的影响不大
  • 层数的增加会大大提高拟合能力
  • 单层的神经元个数少,会造成信息瓶颈,会丢失过多的信息

tf.data

有些数据集已经被写好针对的dataset对象,load起来就很方便
但是自定义数据可咋整?

tf.data.Dataset

dataset = tf.data.Dataset.from_tensor_slices({“a”:[1,2,3,4],
“b”:[6,7,8,9]}) # 以字符串的方式
dataset是一个对象,有shuffle,map等属性或者方法

获取dataset内的数字

for ele in dataset:
print(ele)

for ele in dataset.take(4): # 指定获取前4个数字
print(ele)

next(iter(dataset1.take(1)))