Tensorflow btwn高级和低级库的差异
btwn高级库和低级库的区别是什么Tensorflow btwn高级和低级库的差异,tensorflow,keras,libraries,low-level,Tensorflow,Keras,Libraries,Low Level,btwn高级库和低级库的区别是什么 我知道keras是一个高级库,tensorflow是一个低级库,但我对这些框架还不够熟悉,无法理解这对高级库和低级库意味着什么 高水平意味着你的互动更接近于用英语写作,而你编写的代码基本上更容易被人理解 low level的一个例子是一种语言,在这种语言中,您必须执行诸如分配内存、将数据从一个内存地址复制到另一个内存地址等操作 Keras被认为是高级的,因为你只需要几行代码就可以建立一个神经网络,这个库将为你处理所有的复杂性 在tensorflow中(我没有使
我知道keras是一个高级库,tensorflow是一个低级库,但我对这些框架还不够熟悉,无法理解这对高级库和低级库意味着什么 高水平意味着你的互动更接近于用英语写作,而你编写的代码基本上更容易被人理解 low level的一个例子是一种语言,在这种语言中,您必须执行诸如分配内存、将数据从一个内存地址复制到另一个内存地址等操作 Keras被认为是高级的,因为你只需要几行代码就可以建立一个神经网络,这个库将为你处理所有的复杂性
在tensorflow中(我没有使用它),您可能需要编写更多的代码行来实现相同的功能,但可能需要更大程度的控制。对于外行来说,为NN阅读tensorflow代码没有为NN阅读keras代码那么有意义。keras位于tensorflow之上,因此该框架相对而言比tensorflow本身“更高层次” “高级”语言或框架通常被定义为相对于低级语言或框架具有更多依赖项或与核心二进制代码有更大距离的语言或框架
例如,jQuery被认为比JavaScript更高级,因为它依赖于JavaScript。而Javascript被认为比汇编代码更高级,因为它被传输到汇编中。Keras是一种高级深度学习(DL)“API”。API的关键组件包括:
- 模型-定义神经网络(NN)
- 层-NN模型的构建块(例如密集、卷积)
- 优化器-进行梯度下降以学习NN权重的不同方法(例如SGD、Adam)
- 损失-对于分类、回归等用例,优化器应最小化的目标函数(例如分类交叉熵,MSE)
# Define Neural Network
model = Sequential()
# Add Layers to the Network
model.add(Dense(512, activation='relu', input_shape=(784,)))
....
# Define objective function and optimizer
model.compile(loss='categorical_crossentropy',
optimizer=Adam(),
metrics=['accuracy'])
# Train the model for certain number of epochs by feeding train/validation data
history = model.fit(x_train, y_train,
batch_size=batch_size,
epochs=epochs,
verbose=1,
validation_data=(x_test, y_test))
Tensorflow
它不再是一个代码片段:)因为您需要从存储权重的变量、层之间的连接、训练循环、创建用于训练的成批数据等开始定义所有内容
通过在Keras vs Tensorflow中培训MNIST(DL Hello world示例),您可以参考以下链接了解代码复杂性
考虑到Keras带来的好处,Tensorflow将tf.Keras作为Tensorflow 2.0中的高级API
我不一定认为Keras比Tensorflow更可读。Keras位于Tensorflow和其他各种ML库之上,仅供参考。