标签: tensorflow

使用TensorFlow模型进行预测

我按照给定的mnist教程,能够训练模型并评估其准确性.但是,教程没有说明如何在给定模型的情况下进行预测.我对准确性不感兴趣,我只想使用模型来预测一个新的例子,并在输出中查看所有结果(标签),每个结果都有指定的分数(已分类或未分类).

tensorflow

79
推荐指数
2
解决办法
8万
查看次数

"扁平化"在克拉斯的作用

我试图了解该Flatten功能在Keras中的作用.下面是我的代码,这是一个简单的双层网络.它接收形状(3,2)的二维数据,并输出形状(1,4)的1维数据:

model = Sequential()
model.add(Dense(16, input_shape=(3, 2)))
model.add(Activation('relu'))
model.add(Flatten())
model.add(Dense(4))
model.compile(loss='mean_squared_error', optimizer='SGD')

x = np.array([[[1, 2], [3, 4], [5, 6]]])

y = model.predict(x)

print y.shape
Run Code Online (Sandbox Code Playgroud)

这打印出y形状(1,4).但是,如果我删除该Flatten行,则打印出y具有形状(1,3,4)的行.

我不明白这一点.根据我对神经网络的理解,该model.add(Dense(16, input_shape=(3, 2)))功能正在创建一个隐藏的全连接层,具有16个节点.这些节点中的每一个都连接到3x2输入元件中的每一个.因此,该第一层输出处的16个节点已经"平坦".因此,第一层的输出形状应为(1,16).然后,第二层将其作为输入,并输出形状(1,4)的数据.

因此,如果第一层的输出已经是"平坦的"和形状(1,16),为什么我需要进一步压平它?

谢谢!

machine-learning neural-network deep-learning keras tensorflow

79
推荐指数
4
解决办法
6万
查看次数

Tensorflow - ValueError:无法将 NumPy 数组转换为张量(不支持的对象类型浮点数)

上一个问题的延续:Tensorflow - TypeError: 'int' object is not iterable

我的训练数据是一个列表列表,每个列表包含 1000 个浮点数。例如,x_train[0] =

[0.0, 0.0, 0.1, 0.25, 0.5, ...]
Run Code Online (Sandbox Code Playgroud)

这是我的模型:

model = Sequential()

model.add(LSTM(128, activation='relu',
               input_shape=(1000, 1), return_sequences=True))
model.add(Dropout(0.2))
model.add(LSTM(128, activation='relu'))
model.add(Dropout(0.2))
model.add(Dense(32, activation='relu'))
model.add(Dropout(0.2))
model.add(Dense(1, activation='sigmoid'))

opt = tf.keras.optimizers.Adam(lr=1e-3, decay=1e-5)

model.compile(optimizer='rmsprop',
              loss='binary_crossentropy',
              metrics=['accuracy'])

model.fit(x_train, y_train, epochs=3, validation_data=(x_test, y_test))
Run Code Online (Sandbox Code Playgroud)

这是我得到的错误:

Traceback (most recent call last):
      File "C:\Users\bencu\Desktop\ProjectFiles\Code\Program.py", line 88, in FitModel
        model.fit(x_train, y_train, epochs=3, validation_data=(x_test, y_test))
      File "C:\Users\bencu\AppData\Local\Programs\Python\Python37\lib\site-packages\tensorflow_core\python\keras\engine\training.py", line 728, in fit
        use_multiprocessing=use_multiprocessing)
      File "C:\Users\bencu\AppData\Local\Programs\Python\Python37\lib\site-packages\tensorflow_core\python\keras\engine\training_v2.py", line 224, in fit …
Run Code Online (Sandbox Code Playgroud)

python lstm keras tensorflow

78
推荐指数
6
解决办法
15万
查看次数

我怎样才能在TensorFlow中使用批量标准化?

我想在TensorFlow中使用批量规范化.我找到了相关的C++源代码core/ops/nn_ops.cc.但是,我没有在tensorflow.org上找到它.

BN在MLP和CNN中有不同的语义,所以我不确定这个BN究竟是做什么的.

我没有找到一个叫做的方法MovingMoments.

python tensorflow

77
推荐指数
6
解决办法
8万
查看次数

在Windows上,运行"import tensorflow"会生成名为"_pywrap_tensorflow"的无模块错误

在Windows上,TensorFlow在执行import tensorflow语句后报告以下错误中的一个或两个:

  • No module named "_pywrap_tensorflow"
  • DLL load failed.

tensorflow

76
推荐指数
9
解决办法
14万
查看次数

如何选择张量流中的交叉熵损失?

分类问题,例如逻辑回归或多项逻辑回归,优化了交叉熵损失.通常,交叉熵层遵循softmax层,其产生概率分布.

在tensorflow中,至少有十几种不同的交叉熵损失函数:

  • tf.losses.softmax_cross_entropy
  • tf.losses.sparse_softmax_cross_entropy
  • tf.losses.sigmoid_cross_entropy
  • tf.contrib.losses.softmax_cross_entropy
  • tf.contrib.losses.sigmoid_cross_entropy
  • tf.nn.softmax_cross_entropy_with_logits
  • tf.nn.sigmoid_cross_entropy_with_logits
  • ...

哪个只适用于二进制分类,哪个适用于多类问题?你何时应该使用sigmoid而不是softmax?如何在sparse功能与别人不同,为什么仅是它softmax

相关(更多数学导向)讨论:交叉熵丛林.

machine-learning neural-network logistic-regression tensorflow cross-entropy

76
推荐指数
3
解决办法
4万
查看次数

如何解决“AttributeError:模块'google.protobuf.descriptor'没有属性'_internal_create_key”?

from object_detection.utils import label_map_util在 jupyter notebook 中执行时遇到了它。其实就是tensorflow对象检测教程notebook(自带tensorflow对象检测api)完整的错误日志:

AttributeError                            Traceback (most recent call last)
<ipython-input-7-7035655b948a> in <module>
      1 from object_detection.utils import ops as utils_ops
----> 2 from object_detection.utils import label_map_util
      3 from object_detection.utils import visualization_utils as vis_util

~\AppData\Roaming\Python\Python37\site-packages\object_detection\utils\label_map_util.py in <module>
     25 import tensorflow as tf
     26 from google.protobuf import text_format
---> 27 from object_detection.protos import string_int_label_map_pb2
     28 
     29 

~\AppData\Roaming\Python\Python37\site-packages\object_detection\protos\string_int_label_map_pb2.py in <module>
     19   syntax='proto2',
     20   serialized_options=None,
---> 21   create_key=_descriptor._internal_create_key,
     22   serialized_pb=b'\n2object_detection/protos/string_int_label_map.proto\x12\x17object_detection.protos\"\xc0\x01\n\x15StringIntLabelMapItem\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\n\n\x02id\x18\x02 \x01(\x05\x12\x14\n\x0c\x64isplay_name\x18\x03 \x01(\t\x12M\n\tkeypoints\x18\x04 \x03(\x0b\x32:.object_detection.protos.StringIntLabelMapItem.KeypointMap\x1a(\n\x0bKeypointMap\x12\n\n\x02id\x18\x01 \x01(\x05\x12\r\n\x05label\x18\x02 \x01(\t\"Q\n\x11StringIntLabelMap\x12<\n\x04item\x18\x01 \x03(\x0b\x32..object_detection.protos.StringIntLabelMapItem'
     23 ) …
Run Code Online (Sandbox Code Playgroud)

python protocol-buffers proto tensorflow object-detection-api

75
推荐指数
3
解决办法
6万
查看次数

如何为TensorFlow变量赋值?

我试图在python中为tensorflow变量赋一个新值.

import tensorflow as tf
import numpy as np

x = tf.Variable(0)
init = tf.initialize_all_variables()
sess = tf.InteractiveSession()
sess.run(init)

print(x.eval())

x.assign(1)
print(x.eval())
Run Code Online (Sandbox Code Playgroud)

但我得到的输出是

0
0
Run Code Online (Sandbox Code Playgroud)

所以价值没有改变.我错过了什么?

python variable-assignment neural-network deep-learning tensorflow

73
推荐指数
3
解决办法
8万
查看次数

TensorFlow中variable_scope和name_scope之间的区别

variable_scope和之间有什么区别name_scope?该变量的作用域教程挂在嘴边variable_scope隐含打开name_scope.我还注意到,在a中创建变量也会name_scope自动扩展其名称以及作用域名称.那么区别是什么呢?

python scope tensorflow

71
推荐指数
2
解决办法
2万
查看次数

加载训练有素的Keras模型并继续训练

我想知道是否可以保存部分训练的Keras模型并在再次加载模型后继续训练.

这样做的原因是我将来会有更多的训练数据,我不想再次重新训练整个模型.

我正在使用的功能是:

#Partly train model
model.fit(first_training, first_classes, batch_size=32, nb_epoch=20)

#Save partly trained model
model.save('partly_trained.h5')

#Load partly trained model
from keras.models import load_model
model = load_model('partly_trained.h5')

#Continue training
model.fit(second_training, second_classes, batch_size=32, nb_epoch=20)
Run Code Online (Sandbox Code Playgroud)

编辑1:添加了完整的工作示例

使用10个时期之后的第一个数据集,最后一个纪元的损失将为0.0748,准确度为0.9863.

保存,删除和重新加载模型后,在第二个数据集上训练的模型的损失和准确性将分别为0.1711和0.9504.

这是由新的训练数据还是完全重新训练的模型引起的?

"""
Model by: http://machinelearningmastery.com/
"""
# load (downloaded if needed) the MNIST dataset
import numpy
from keras.datasets import mnist
from keras.models import Sequential
from keras.layers import Dense
from keras.utils import np_utils
from keras.models import load_model
numpy.random.seed(7)

def baseline_model():
    model = Sequential()
    model.add(Dense(num_pixels, input_dim=num_pixels, init='normal', …
Run Code Online (Sandbox Code Playgroud)

python neural-network keras tensorflow resuming-training

71
推荐指数
3
解决办法
6万
查看次数