提交 23a14ad0 编写于 作者: W wizardforcel

2020-09-10 22:41:26

上级 943ef3c8
......@@ -37,7 +37,7 @@ image1 = tf.zeros([7, 28, 28, 3]) # example-within-batch by height by width by
**TensorFlow.js** 是 API 的集合,可让您使用底层 JavaScript 线性代数库或高层 API 来构建和训练模型。 因此,可以训练模型并在浏览器中运行它们。
**TensorFlow Lite** 是适用于移动和嵌入式设备的 TensorFlow 的轻量级版本。 它由运行时解释器和一组实用程序组成。 这个想法是您在功率更高的机器上训练模型,然后使用实用程序将模型转换为`.tflite`格式。 然后将模型加载到您选择的设备中。 在撰写本文时,使用 C++ API 在 Android 和 iOS 上支持 TensorFlow Lite,并且具有适用于 Android 的 Java 包装器。 如果 Android 设备支持 **Android 神经​​网络****ANN**)API 进行硬件加速,则解释器将使用此 API,否则它将默认使用 CPU 执行。
**TensorFlow Lite** 是适用于移动和嵌入式设备的 TensorFlow 的轻量级版本。 它由运行时解释器和一组工具组成。 这个想法是您在功率更高的机器上训练模型,然后使用工具将模型转换为`.tflite`格式。 然后将模型加载到您选择的设备中。 在撰写本文时,使用 C++ API 在 Android 和 iOS 上支持 TensorFlow Lite,并且具有适用于 Android 的 Java 包装器。 如果 Android 设备支持 **Android 神经​​网络****ANN**)API 进行硬件加速,则解释器将使用此 API,否则它将默认使用 CPU 执行。
**TensorFlow Hub** 是一个旨在促进机器学习模型的可重用模块的发布,发现和使用的库。 在这种情况下,模块是 TensorFlow 图的独立部分,包括其权重和其他资产。 该模块可以通过称为转移学习的方法在不同任务中重用。 这个想法是您在大型数据集上训练模型,然后将适当的模块重新用于您的其他但相关的任务。 这种方法具有许多优点-您可以使用较小的数据集训练模型,可以提高泛化能力,并且可以大大加快训练速度。
......
......@@ -277,7 +277,7 @@ model2.compile (optimizer= tf.keras.Adam(), loss='sparse_categorical_crossentrop
model2.fit(train_x, train_y, batch_size=batch_size, epochs=epochs)
```
然后,我们使用`test`数据评估模型的性能
然后,我们使用`test`数据评估模型的表现
```py
model2.evaluate(test_x, test_y)
......
......@@ -236,7 +236,7 @@ print("Predicted median house value ",y_pred.numpy()," in $10K")
# 逻辑回归(分类)
这类问题的名称令人迷惑,因为正如我们所看到的,回归意味着连续值标签,例如房屋的中位数价格或树的高度。
这类问题的名称令人迷惑,因为正如我们所看到的,回归意味着连续值标签,例如房屋的中位数价格或树的高度。
逻辑回归并非如此。 当您遇到需要逻辑回归的问题时,这意味着标签为`categorical`; 例如,零或一,`True``False`,是或否,猫或狗,或者它可以是两个以上的分类值; 例如,红色,蓝色或绿色,或一,二,三,四或五,或给定花的类型。 标签通常具有与之相关的概率; 例如,`P(cat = 0.92)``P(dog = 0.08)`。 因此,逻辑回归也称为**分类**
......
......@@ -115,7 +115,7 @@ file='1400-0.txt'
url='https://www.gutenberg.org/files/1400/1400-0.txt' # Great Expectations by Charles Dickens
```
然后,我们为该文件设置了 Keras `get_file()`实用程序,如下所示:
然后,我们为该文件设置了 Keras `get_file()`工具,如下所示:
```py
path = tf.keras.utils.get_file(file,url)
......@@ -351,7 +351,7 @@ dataset
<RepeatBatchDataset shapes: ((64, 100), (64, 100)), types: (tf.int64, tf.int64)>
```
此处,`64`是批次大小,`100`是序列长度。 以下是我们训练所需的一些价值观
此处,`64`是批次大小,`100`是序列长度。 以下是我们训练所需的一些
```py
# The vocabulary length in characters
......
......@@ -150,7 +150,7 @@ INFO:tensorflow:Loss for final step: 13.06977.
![](img/27a244c6-21a0-4834-a28a-4718d7197716.png)
为了评估模型的性能,使用了`classifier.evaluate`方法。 其签名如下:
为了评估模型的表现,使用了`classifier.evaluate`方法。 其签名如下:
```py
classifier.evaluate(input_fn, steps=None, hooks=None, checkpoint_path=None, name=None)
......@@ -281,7 +281,7 @@ def load_data(directory):
return pd.DataFrame.from_dict(directory_data)
```
如我们前面所述,下一个函数`load(directory)`调用`load_data(directory)``pos``neg`子目录创建一个`DataFrame`。 它将适当的极性作为额外字段添加到每个`DataFrame`。 然后,它返回一个新的`DataFrame`,该数据帧由`pos``neg``DataFrame`串联组成,经过混洗(`sample(frac=1)`),并插入了新的数字索引(因为我们已经对行进行了混排):
如我们前面所述,下一个函数`load(directory)`调用`load_data(directory)``pos``neg`子目录创建一个`DataFrame`。 它将适当的极性作为额外字段添加到每个`DataFrame`。 然后,它返回一个新的`DataFrame`,该数据帧由`pos``neg``DataFrame`连接组成,经过混洗(`sample(frac=1)`),并插入了新的数字索引(因为我们已经对行进行了混排):
```py
# Merge positive and negative examples, add a polarity column and shuffle.
......@@ -294,7 +294,7 @@ def load(directory):
return pd.concat([positive_df, negative_df]).sample(frac=1).reset_index(drop=True)
```
第三个也是最后一个功能是`acquire_data()`。 如果缓存中不存在该函数,则使用 Keras 实用程序从 Stanford URL 中获取我们所需的文件。 默认情况下,高速缓存是位于`~/.keras/datasets`的目录,如有必要,文件将提取到该位置。 该实用程序将返回到我们的 IMDb 的路径。 然后将其传递给`load_dataset()`的两个调用,以获取火车和测试`DataFrame`
第三个也是最后一个功能是`acquire_data()`。 如果缓存中不存在该函数,则使用 Keras 工具从 Stanford URL 中获取我们所需的文件。 默认情况下,高速缓存是位于`~/.keras/datasets`的目录,如有必要,文件将提取到该位置。 该工具将返回到我们的 IMDb 的路径。 然后将其传递给`load_dataset()`的两个调用,以获取火车和测试`DataFrame`
```py
# Download and process the dataset files.
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册