我知道在安装tensorflow时,您要么安装GPU版本,要么安装CPU版本.如何检查安装了哪一个(我使用的是linux).
如果安装了GPU版本,如果GPU不可用,它会自动在CPU上运行还是会抛出错误?如果GPU可用,是否需要设置特定字段或值以确保它在GPU上运行?
也许是一般性的问题,但任何人都可以解释什么会导致卷积神经网络发散?
具体细节:
我正在使用Tensorflow的iris_training模型和我自己的一些数据并继续获取
错误:tensorflow:模型与损失= NaN分歧.
追溯...
tensorflow.contrib.learn.python.learn.monitors.NanLossDuringTrainingError:训练期间NaN丢失.
回溯源于线:
tf.contrib.learn.DNNClassifier(feature_columns=feature_columns,
hidden_units=[300, 300, 300],
#optimizer=tf.train.ProximalAdagradOptimizer(learning_rate=0.001, l1_regularization_strength=0.00001),
n_classes=11,
model_dir="/tmp/iris_model")
Run Code Online (Sandbox Code Playgroud)
我已经尝试调整优化器,使用零学习率,并且不使用优化器.任何有关网络层,数据大小等的见解都是值得赞赏的.
我正在使用深度学习库keras并尝试堆叠多个LSTM而没有运气.以下是我的代码
model = Sequential()
model.add(LSTM(100,input_shape =(time_steps,vector_size)))
model.add(LSTM(100))
Run Code Online (Sandbox Code Playgroud)
上面的代码在第三行返回错误 Exception: Input 0 is incompatible with layer lstm_28: expected ndim=3, found ndim=2
输入X是一个形状的张量(100,250,50).我在tensorflow后端运行keras
有人可以解释一下吗?我知道双向LSTM有前向和后向通过,但这比单向LSTM有什么优势?
他们每个人更适合什么?
machine-learning neural-network lstm keras recurrent-neural-network
我正在训练970个样本并对243个样本进行验证.
在Keras中拟合模型以优化val_acc时,批量大小和时期数量应该有多大?根据数据输入大小,是否有任何经验法则?
总而言之:
经过训练来预测函数的简单(单隐藏层)前馈 Pytorch 模型的性能y = sin(X1) + sin(X2) + ... sin(X10)明显低于使用 Keras 构建/训练的相同模型。为什么会这样?可以采取哪些措施来减轻性能差异?
在训练回归模型时,我注意到 PyTorch 的性能远远低于使用 Keras 构建的相同模型。
之前已经观察到并报道过这种现象:
此前也已做出以下解释和建议:
我正在使用Keras(与Theano)来训练我的CNN模型.有谁知道如何在我的C++应用程序中使用它?有没有人尝试类似的东西?我有想法写一些python代码,它将生成一个带有网络功能的c ++代码 - 有什么建议吗?
Keras的fit_generator()模型方法需要一个生成形状元组(输入,目标)的生成器,其中两个元素都是NumPy数组.文档似乎暗示如果我只是将Dataset迭代器包装在生成器中,并确保将Tensors转换为NumPy数组,我应该好好去.但是,这段代码给了我一个错误:
import numpy as np
import os
import keras.backend as K
from keras.layers import Dense, Input
from keras.models import Model
import tensorflow as tf
from tensorflow.contrib.data import Dataset
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3'
with tf.Session() as sess:
def create_data_generator():
dat1 = np.arange(4).reshape(-1, 1)
ds1 = Dataset.from_tensor_slices(dat1).repeat()
dat2 = np.arange(5, 9).reshape(-1, 1)
ds2 = Dataset.from_tensor_slices(dat2).repeat()
ds = Dataset.zip((ds1, ds2)).batch(4)
iterator = ds.make_one_shot_iterator()
while True:
next_val = iterator.get_next()
yield sess.run(next_val)
datagen = create_data_generator()
input_vals = Input(shape=(1,))
output …Run Code Online (Sandbox Code Playgroud) 我尝试将 2 个损失函数传递给模型,因为Keras 允许这样做。
损失:字符串(目标函数名称)或目标函数或损失实例。见损失。如果模型有多个输出,您可以通过传递字典或损失列表对每个输出使用不同的损失。模型将最小化的损失值将是所有单个损失的总和。
两个损失函数:
def l_2nd(beta):
def loss_2nd(y_true, y_pred):
...
return K.mean(t)
return loss_2nd
Run Code Online (Sandbox Code Playgroud)
和
def l_1st(alpha):
def loss_1st(y_true, y_pred):
...
return alpha * 2 * tf.linalg.trace(tf.matmul(tf.matmul(Y, L, transpose_a=True), Y)) / batch_size
return loss_1st
Run Code Online (Sandbox Code Playgroud)
然后我建立模型:
l2 = K.eval(l_2nd(self.beta))
l1 = K.eval(l_1st(self.alpha))
self.model.compile(opt, [l2, l1])
Run Code Online (Sandbox Code Playgroud)
当我训练时,它会产生错误:
1.15.0-rc3 警告:tensorflow:来自 /usr/local/lib/python3.6/dist-packages/tensorflow_core/python/ops/resource_variable_ops.py:1630:调用 BaseResourceVariable。不推荐使用带有约束的init(来自 tensorflow.python.ops.resource_variable_ops)并将在未来版本中删除。说明
更新:如果使用 Keras 将 *_constraint 参数传递给层。
NotImplementedError Traceback (最近一次调用最后一次) in () 47 create_using=nx.DiGraph(), nodetype=None, data=[('weight', int)]) 48 ---> 49 model = SDNE(G, …
keras ×10
tensorflow ×7
python ×3
theano ×3
lstm ×2
adam ×1
backend ×1
c++ ×1
data-science ×1
keras-layer ×1
pytorch ×1