标签: deep-learning

ConsoleBuffer' 对象没有属性 'isatty'

我正在 databricks 社区版上使用 Sparkdl 进行图像分类。我添加了所有图书馆的。我已经使用图像数据创建了数据框。

from pyspark.ml.classification import LogisticRegression
from pyspark.ml import Pipeline
from sparkdl import DeepImageFeaturizer 

featurizer = DeepImageFeaturizer(inputCol="image", outputCol="features", modelName="InceptionV3")
lr = LogisticRegression(maxIter=20, regParam=0.05, elasticNetParam=0.3, labelCol="label")
p = Pipeline(stages=[featurizer, lr])

p_model = p.fit(train_df)   




    AttributeError                            Traceback (most recent call last)
<command-2468766328144961> in <module>()
      7 p = Pipeline(stages=[featurizer, lr])
      8 
----> 9 p_model = p.fit(train_df)

/databricks/spark/python/pyspark/ml/base.py in fit(self, dataset, params)
     62                 return self.copy(params)._fit(dataset)
     63             else:
---> 64                 return self._fit(dataset)
     65         else:
     66             raise ValueError("Params must be either a param map …
Run Code Online (Sandbox Code Playgroud)

apache-spark deep-learning databricks

0
推荐指数
1
解决办法
3873
查看次数

为什么要从 DQN 重放中随机采样?

我试图对深度强化学习有一个直观的理解。在深度 Q 网络(DQN)中,我们将所有动作/环境/奖励存储在内存数组中,并在剧集结束时通过我们的神经网络“重播”它们。这是有道理的,因为我们正在尝试构建我们的奖励矩阵,看看我们的情节是否以奖励结束,然后通过我们的矩阵缩减奖励。

我认为导致奖励状态的动作序列是需要捕获的重要内容 - 这个动作序列(而不是独立的动作)是导致我们进入奖励状态的原因。

Mnih 的 Atari-DQN 论文和许多教程中,我们看到了从内存阵列中随机采样和训练的实践。所以如果我们有这样的记忆:

(动作a,状态1)-->(动作b,状态2)-->(动作c,状态3)-->(动作d,状态4)-->奖励!

我们可以训练一小批:

[(动作c状态3),(动作b,状态2),奖励!]

给出的理由是:

其次,由于样本之间的相关性很强,直接从连续样本中学习效率很低;随机化样本会破坏这些相关性,从而减少更新的方差。

或者来自这个pytorch 教程

通过随机采样,构建批次的转换是去相关的。事实证明,这极大地稳定并改进了 DQN 训练过程。

我的直觉告诉我,序列是强化学习中最重要的。大多数剧集都有延迟奖励,因此大多数行动/状态没有奖励(并且没有“强化”)。将部分奖励带到这些先前状态的唯一方法是追溯地将奖励分解到整个序列中(通过奖励 + 奖励 *learning_rate(future_reward)的 Q 算法中的 future_reward )

内存库的随机采样打破了我们的序列,当您尝试回填 Q(奖励)矩阵时,这有什么帮助?

也许这更类似于马尔可夫模型,每个状态都应该被认为是独立的?我的直觉哪里出了问题?

谢谢你!

reinforcement-learning neural-network q-learning deep-learning

0
推荐指数
1
解决办法
864
查看次数

在神经机器翻译中绑定权重

我想将解码器的embedding层和预测层的权重联系起来。next_word嵌入维度设置为 300,解码器的隐藏大小设置为 600。NMT 中目标语言的词汇量为 50000,因此嵌入权重维度为 ,50000 x 300预测下一个单词的线性层权重为50000 x 600

那么,我怎样才能把它们绑起来呢?在这种情况下实现重量绑定的最佳方法是什么?

python deep-learning recurrent-neural-network pytorch seq2seq

0
推荐指数
1
解决办法
7168
查看次数

如果我不能在神经网络中进行大批量处理,如何补偿

我正在尝试运行来自 GitHub 的动作识别代码。原始代码使用 4 个 GPU 的批处理大小 128。我只有两个 GPU,所以我无法匹配它们的 bacth 大小。无论如何,我可以批量补偿这种差异吗?我在某处看到 iter_size 可能会根据公式进行补偿effective_batchsize= batch_size*iter_size*n_gpu。这个公式中的 iter_size 是多少?我使用 PYthorch 而不是 Caffe。

artificial-intelligence neural-network deep-learning pytorch

0
推荐指数
1
解决办法
1656
查看次数

用于训练模型的 Keras F1 得分指标

我是 keras 新手,我想用 F1-score 作为指标来训练模型。

\n\n

我遇到了两件事,一是我可以添加回调,二是使用内置的指标函数\n这里,它说指标函数将不会用于训练模型。那么,这是否意味着我可以metrics在编译模型时进行任何争论?\n具体来说,

\n\n
model.compile(optimizer=\'rmsprop\',\n    loss=\'binary_crossentropy\',\n    metrics=[\'accuracy\'])\n
Run Code Online (Sandbox Code Playgroud)\n\n

在上述情况下,即使准确性作为指标传递,它也不会用于训练模型。

\n\n

第二件事是使用此处定义的回调,

\n\n
import numpy as np\nfrom keras.callbacks import Callback\nfrom sklearn.metrics import confusion_matrix, f1_score, precision_score, recall_score\nclass Metrics(Callback):\ndef on_train_begin(self, logs={}):\n self.val_f1s = []\n self.val_recalls = []\n self.val_precisions = []\n\ndef on_epoch_end(self, epoch, logs={}):\n val_predict = (np.asarray(self.model.predict(self.model.validation_data[0]))).round()\n val_targ = self.model.validation_data[1]\n _val_f1 = f1_score(val_targ, val_predict)\n _val_recall = recall_score(val_targ, val_predict)\n _val_precision = precision_score(val_targ, val_predict)\n self.val_f1s.append(_val_f1)\n self.val_recalls.append(_val_recall)\n self.val_precisions.append(_val_precision)\n print \xe2\x80\x9c \xe2\x80\x94 val_f1: %f \xe2\x80\x94 val_precision: %f \xe2\x80\x94 val_recall %f\xe2\x80\x9d …
Run Code Online (Sandbox Code Playgroud)

python deep-learning keras tensorflow

0
推荐指数
1
解决办法
5534
查看次数

从 github 导入 Matterport 的 Mask-RCNN 模型 - 错误:ZipImportError:错误的本地文件头

我尝试从 github 导入 Matterport 的 Mask-RCNN 模型,但出现错误。我做错了什么?

# Import Mask RCNN
sys.path.append(os.path.join(ROOT_DIR, 'Mask_RCNN'))  # To find local version of the library
from mrcnn.config import Config
from mrcnn import utils
import mrcnn.model as modellib
from mrcnn import visualize
from mrcnn.model import log
Run Code Online (Sandbox Code Playgroud)

输出:

---------------------------------------------------------------------------
ZipImportError                            Traceback (most recent call last)
<ipython-input-17-19fc18cf001a> in <module>
      4 from mrcnn import utils
      5 import mrcnn.model as modellib
----> 6 from mrcnn import visualize
      7 from mrcnn.model import log

ZipImportError: bad local file header: '/home/wojtek/anaconda3/lib/python3.6/site-packages/mask_rcnn-2.1-py3.6.egg'


Run Code Online (Sandbox Code Playgroud)

deep-learning

0
推荐指数
1
解决办法
1万
查看次数

使用 Keras 进行单批次训练时,准确性会下降吗?

通常,当使用 Keras 训练深度神经网络时,训练准确性会在单批次训练期间提高。

就像这样,

2019-08-03 13:33:22 PST10/189 [>.............................] - ETA: 9s - loss: 0.6919 - acc: 0.8000
2019-08-03 13:33:22 PST20/189 [==>...........................] - ETA: 4s - loss: 0.6905 - acc: 0.9000
2019-08-03 13:33:22 PST40/189 [=====>........................] - ETA: 2s - loss: 0.6879 - acc: 0.9500
2019-08-03 13:33:22 PST60/189 [========>.....................] - ETA: 1s - loss: 0.6852 - acc: 0.9667
2019-08-03 13:33:22 PST80/189 [===========>..................] - ETA: 1s - loss: 0.6821 - acc: 0.9750
2019-08-03 13:33:22 PST90/189 [=============>................] - ETA: 1s - loss: 0.6806 - …
Run Code Online (Sandbox Code Playgroud)

python deep-learning keras data-science tensorflow

0
推荐指数
1
解决办法
899
查看次数

pytorch线性方法中的多维输入?

在构建简单的感知器神经网络时,我们通常将格式输入的二维矩阵传递给二维权(batch_size,features)重矩阵,类似于numpy 中的这个简单神经网络。我一直假设神经网络的感知器/密集/线性层只接受 2D 格式的输入并输出另一个 2D 输出。但是最近我遇到了这个 pytorch 模型,其中一个 Linear 层接受一个 3D 输入张量并输出另一个 3D 张量 ( o1 = self.a1(x))。

import torch
import torch.nn as nn
import torch.nn.functional as F
import torch.optim as optim

class Net(nn.Module):
    def __init__(self):
        super().__init__()
        self.a1 = nn.Linear(4,4)
        self.a2 = nn.Linear(4,4)
        self.a3 = nn.Linear(9,1)
    def forward(self,x):
        o1 = self.a1(x)
        o2 = self.a2(x).transpose(1,2)
        output = torch.bmm(o1,o2)
        output = output.view(len(x),9)
        output = self.a3(output)
        return output

x = torch.randn(10,3,4)
y = torch.ones(10,1)

net = Net()

criterion …
Run Code Online (Sandbox Code Playgroud)

perceptron neural-network deep-learning pytorch

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

导入错误:无法从“keras.models”导入名称“Sequential”

我已经安装了 keras,然后是 tensorflow。

from keras.models import Sequential
from keras.layers import Conv2D
from keras.layers import MaxPooling2D
from keras.layers import Flatten
from keras.layers import Dense
from keras.models import Sequential
from keras.layers import Conv2D
from keras.layers import MaxPooling2D
from keras.layers import Flatten
from keras.layers import Dense
Run Code Online (Sandbox Code Playgroud)

当我执行 keras 顺序模型时,我收到一条错误消息,指出

导入错误引用(最近一次调用)
导入错误:无法从 'keras.models' 导入名称 'Sequential' (C:\Users\murthy.p\AppData\Local\Continuum\anaconda4\lib\site-packages\keras\models__init__ .py)

python theano deep-learning keras tensorflow

0
推荐指数
1
解决办法
1万
查看次数

如果 MNIST 数据集中有 60000 张图像,为什么模型只在 1875 张训练集图像上进行训练?

我正在尝试创建一个简单的 CNN 来对 MNIST 数据集中的图像进行分类。该模型达到了可接受的精度,但我注意到该模型在每个 epoch 中仅在 1875 张图像上进行了训练。可能是什么原因造成的?如何修复?

model=models.Sequential()

model.add(layers.Conv2D(filters=32,kernel_size=(3,3),activation='relu',input_shape=(28,28,1)))
model.add(layers.MaxPooling2D((2,2)))
model.add(layers.Conv2D(filters=64,kernel_size=(3,3),activation='relu'))
model.add(layers.MaxPooling2D((2,2)))
model.add(layers.Conv2D(filters=64,kernel_size=(3,3),activation='relu'))
model.add(layers.Flatten())
model.add(layers.Dense(64,activation='relu'))
model.add(layers.Dense(10,activation='softmax'))

Model: "sequential"
_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
conv2d (Conv2D)              (None, 26, 26, 32)        320       
_________________________________________________________________
max_pooling2d (MaxPooling2D) (None, 13, 13, 32)        0         
_________________________________________________________________
conv2d_1 (Conv2D)            (None, 11, 11, 64)        18496     
_________________________________________________________________
max_pooling2d_1 (MaxPooling2 (None, 5, 5, 64)          0         
_________________________________________________________________
conv2d_2 (Conv2D)            (None, 3, 3, 64)          36928     
_________________________________________________________________
flatten (Flatten)            (None, 576)               0         
_________________________________________________________________
dense (Dense)                (None, 64)                36928     
_________________________________________________________________ …
Run Code Online (Sandbox Code Playgroud)

python machine-learning deep-learning keras tensorflow

0
推荐指数
1
解决办法
1447
查看次数