Darwin-15.0.0-x86_64-i386-64bit
('Python', '2.7.11 |Anaconda custom (x86_64)| (default, Dec 6 2015, 18:57:58) \n[GCC 4.2.1 (Apple Inc. build 5577)]')
('NumPy', '1.11.0')
('SciPy', '0.17.0')
('Scikit-Learn', '0.17.1')
t-SNEを実行しようとするとき
proj = TSNE().fit_transform(X)
ValueError: array must not contain infs or NaNs
しかしながら
np.isfinite(X).all() # True
np.isnan(X).all() # False
np.isinf(X).all() # False
フルスタックトレース:
ValueError Traceback (most recent call last)
<ipython-input-16-c25f35fd042c> in <module>()
----> 1 plot(X, y)
<ipython-input-1-72bdb7124d13> in plot(X, y)
74
75 def plot(X, y):
---> 76 proj = TSNE().fit_transform(X)
77 scatter(proj, y)
/Users/joelkuiper/anaconda/lib/python2.7/site-packages/sklearn/manifold/t_sne.pyc in fit_transform(self, X, y)
864 Embedding of the training data in low-dimensional space.
865 """
--> 866 embedding = self._fit(X)
867 self.embedding_ = embedding
868 return self.embedding_
/Users/joelkuiper/anaconda/lib/python2.7/site-packages/sklearn/manifold/t_sne.pyc in _fit(self, X, skip_num_points)
775 X_embedded=X_embedded,
776 neighbors=neighbors_nn,
--> 777 skip_num_points=skip_num_points)
778
779 def _tsne(self, P, degrees_of_freedom, n_samples, random_state,
/Users/joelkuiper/anaconda/lib/python2.7/site-packages/sklearn/manifold/t_sne.pyc in _tsne(self, P, degrees_of_freedom, n_samples, random_state, X_embedded, neighbors, skip_num_points)
830 opt_args['momentum'] = 0.8
831 opt_args['it'] = it + 1
--> 832 params, error, it = _gradient_descent(obj_func, params, **opt_args)
833 if self.verbose:
834 print("[t-SNE] Error after %d iterations with early "
/Users/joelkuiper/anaconda/lib/python2.7/site-packages/sklearn/manifold/t_sne.pyc in _gradient_descent(objective, p0, it, n_iter, objective_error, n_iter_check, n_iter_without_progress, momentum, learning_rate, min_gain, min_grad_norm, min_error_diff, verbose, args, kwargs)
385 for i in range(it, n_iter):
386 new_error, grad = objective(p, *args, **kwargs)
--> 387 grad_norm = linalg.norm(grad)
388
389 inc = update * grad >= 0.0
/Users/joelkuiper/anaconda/lib/python2.7/site-packages/scipy/linalg/misc.pyc in norm(a, ord, axis, keepdims)
127 """
128 # Differs from numpy only in non-finite handling and the use of blas.
--> 129 a = np.asarray_chkfinite(a)
130
131 # Only use optimized norms if axis and keepdims are not specified.
/Users/joelkuiper/anaconda/lib/python2.7/site-packages/numpy/lib/function_base.pyc in asarray_chkfinite(a, dtype, order)
1020 if a.dtype.char in typecodes['AllFloat'] and not np.isfinite(a).all():
1021 raise ValueError(
-> 1022 "array must not contain infs or NaNs")
1023 return a
1024
ValueError: array must not contain infs or NaNs
( 'Scikit-Learn'、 '0.18.dev0')と同じ
データXを私と共有してもよろしいですか?
確かに、どこで、どのような形式でそれを望みますか?
2016年4月17日09:11、康洋[email protected]は次のように書いています。
データXを私と共有してもよろしいですか?
—
スレッドを作成したため、これを受け取っています。
このメールに直接返信するか、GitHubで表示してくださいhttps://github.com/scikit-learn/scikit-learn/issues/6665#issuecomment -210968577
私のメールアドレスは[email protected]です。
私が知っているように、配列を.npy形式でバイナリファイルに保存するための関数numpy.saveがあります~~
私はubuntu14.04LTSであなたのデータをテストします
Python == 2.7.6
scikit-learn == 0.17.1
numpy == 1.8.2
scipy == 0.13.3
それは問題なく、ValueErrorを発生させません。 テストコードは次のとおりです。
`インポートnumpy
a = numpy.load( '/ root / test.npy')
a.shapeを印刷する
print numpy.isnan(a).all()#False
print numpy.isfinite(a).all()#True
print numpy.isinf(a).all()#False
sklearn.manifoldからインポートTSNE
proj = TSNE()。fit_transform(a)#[[2.35503527e + 00 1.15976751e + 01] .... [3.29832591e + 00 8.98212513e + 00]]
印刷プロジェクト `
次に、numpy、scipyを1.11.0、0.17.0にアップグレードし、同じコードでテストしますが、エラーは発生しません。
OS X ElCapitanでanacondaを使用して3.5用に再現。
Darwin 15.4.0
Python 3.5.1 :: Anaconda custom (x86_64)
numpy 1.10.4
scipy 0.17.0
scikit-learn 0.17.1
実行例:
import random
from sklearn.manifold import TSNE
random.seed(1)
a = np.random.uniform(size=(100,20))
TSNE(n_components=2).fit_transform(a)
@ ivan-krukovに感謝しますが、Python3.3での複製に失敗しています。 3.5を試します
これは、3.5で同じパッケージを使用するlinux
(4.4.0-21、Ubuntu 16.04)には適用されません。
El-Capitanを使用していますが、Python3.5のインストールを起動して実行できません。
これに関する更新はありますか?
私のデータセット、Anaconda、Py 3.5、sklearn 0.17.1、OSX ElCapitanに問題があります。
@ ivan-krukovによって提供された例でエラーを再現できます。
同じ問題。 0.17のOSX ElCapitan上のPython2.7.6。 Python 2.7.6および0.17を使用してLinuxで同じコードを試しましたが、機能します。
同じ問題。
OSX El Capitan Python 3.5.1
scikit-learn == 0.17.1
scipy == 0.17.1
私は同じ問題を抱えており、修正(または回避策?)を本当にいただければ幸いです。
システムバージョン:OS X 10.11.5
Python 3.5.1 :: Anaconda 4.0.0(x86_64)
numpy.version.version 1.11.0
scipy.version 0.17.1
sklearn。 バージョン0.17.1
ivan-krukovのコードサンプルでバグを再現することもできます
Python3.5を使用するOSX EICapitanで同じ問題
システムバージョン:OS X 10.11.5
Python 3.5.1 :: Continuum Analytics、Inc。
しびれ。 バージョン1.11.1
scipy。 バージョン0.16.0
sklearn。 バージョン0.17.1
同じ問題。 私はそれが私のデータセットのサブセットに対してのみ発生し、全体では発生しないことに気づきましたが。 それは私が全体のデータにTSNEをすれば、私はそれがない縮小セットでそれを行う場合は、それが動作しています。
O_o ;; これだけで、(list * 10を使用して)機能しない同じ「壊れた」サブセットを繰り返すと、機能します。 個々のベクトルに10を掛けることはできませんが、日付を複製することはできます。 リストの長さを2倍にするだけでは不十分です。 多分これはある種の自由度チェックランアモックですか?
@ ivan-krukov今日は弾丸を噛み、El CapitanVMをインストールしました。 残念ながら、私はあなたの問題を再現することはできません。
@Concomitant https://github.com/scikit-learn/scikit-learn/issues/6665#issuecomment -218365487にあるスタンドアロンの例でエラーを再現できますか?
El-Capitanを使用していますが、Python3.5のインストールを起動して実行できません。
@jnothmanはPython3.5でのみ発生しているようには見えないため、Python 2.7で再現を試みることができれば(スニペット:https://github.com/scikit-learn/scikit-learn/issues/6665#issuecomment-218365487 )それは素晴らしいことです。
@lesteve問題を再現できます。
import numpy as np
import random
from sklearn.manifold import TSNE
random.seed(1)
a = np.random.uniform(size=(100,20))
TSNE(n_components=2).fit_transform(a)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Users/dshank/miniconda3/envs/python3/lib/python3.5/site-packages/sklearn/manifold/t_sne.py", line 866, in fit_transform
embedding = self._fit(X)
File "/Users/dshank/miniconda3/envs/python3/lib/python3.5/site-packages/sklearn/manifold/t_sne.py", line 777, in _fit
skip_num_points=skip_num_points)
File "/Users/dshank/miniconda3/envs/python3/lib/python3.5/site-packages/sklearn/manifold/t_sne.py", line 832, in _tsne
params, error, it = _gradient_descent(obj_func, params, **opt_args)
File "/Users/dshank/miniconda3/envs/python3/lib/python3.5/site-packages/sklearn/manifold/t_sne.py", line 387, in _gradient_descent
grad_norm = linalg.norm(grad)
File "/Users/dshank/miniconda3/envs/python3/lib/python3.5/site-packages/scipy/linalg/misc.py", line 115, in norm
a = np.asarray_chkfinite(a)
File "/Users/dshank/miniconda3/envs/python3/lib/python3.5/site-packages/numpy/lib/function_base.py", line 1033, in asarray_chkfinite
"array must not contain infs or NaNs")
ValueError: array must not contain infs or NaNs
ただし、同じコードに従います。
>>> a = np.random.uniform(size=(10000,20))
>>> TSNE(n_components=2).fit_transform(a)
array([[ 3.25766047e+11, -2.74708004e+11],
[ 2.43498802e+11, -7.68189047e+10],
[ -6.00107639e+09, -1.13548763e+11],
...,
[ 3.02794039e+10, 6.64402020e+11],
[ 2.55855781e+10, 5.67932400e+10],
[ 1.42040378e+11, -7.55188994e+10]])
奇妙な。
python 3.5.1、numpy 1.11.1、scipy 0.17.1、scikit-learn 0.17.1でも、OSX El Capitanを搭載した仮想ボックスでminiconda(MKLを使用)から再現できません。 後で実際のMacハードウェアを試してみます。
また、 @ joelkuiperと@Concomitantは、scikit-learnマスターブランチの現在の状態で問題を再現できることを確認できますか?
OSX El Capitan 10.11.3を実行している実際のMacで再試行しました(anacondaの最新のnumpy scipyとscikit-learn、https: //github.com/scikit-learn/scikit-learn/issuesの@Concomitantによって報告されたものと同じ設定) / 6665#issuecomment-229703129)が、問題を再現できませんでした(スニペットを数回実行しようとしました)。
それは何にもかかわらず、ということけれども奇妙ですnp.random.seed(1)
ラインIは、出力のために異なる結果を取得fit_transform
。 これ自体がバグである可能性があります。
np.random.seed(1)行にもかかわらず、fit_transformの出力に対して異なる結果が得られるのは奇妙なことです。 これ自体がバグである可能性があります。
実は私は@Concomitantのコードを読んで、あまりにも早くスニペット:代わりにrandom.seed(1)
それがあるべきnp.random.seed(1)
そうnumpyのRNGが適切に再播種されていない、もう1つは決定論的な結果を得ることができません。
また、ディスカッション全体を読むのが速すぎて、バグはpython2.7でのみ発生することに気づきました。 再試行します。
OSX10.11.3のcondaからpython2.7.12でも再現できません。
実際、 @ Ekliptorは
OSX10.11.5でも複製できません。 numpy 1.11.1、scipy 0.17.1、scikit-learn0.17.1とともにcondaをインストールしたPython2.7.12と3.5.2の両方で試しました。
どうしたらいいのかわからない。 問題を再現できる場合は、問題をトリガーするランダムシードを見つけて(上記のスニペットのrandom.seed(1)
代わりにnp.random.seed(my_seed)
使用)、ここで値を伝えてください( OSXのバージョンとPythonパッケージ)。
最新バージョンで問題が修正されていることを確認できます。 以前のように再現できなくなりました。
numpyのみを更新しました:
numpy.version.version 1.11.1
Tensorflowを使用しているすべての人に、次のことを追加できます。
非常に小さいサンプル(<200ポイント)をプロットしようとすると、このエラーが発生することがあります。 サンプルサイズを増やした後、tsne.fit_transform()に渡すと、常に機能します。
scikit-learnマスターで動作することを確認してくれた@Ekliptorに感謝します。 @joelkuiperと@Concomitantは、scikit-learnマスターも機能することを確認しますか? もしそうなら、この問題を解決できます。
マスターをインストールしました。コードスニペットは正常に実行されます。
今はみんなのために働いているようです。 閉鎖。
申し訳ありませんが、Python 3.5.1、scikit 0.17、scikit-learn 0.18(commit 9e913c04d748)、およびMac OS10.11.5のNumpy1.11.1でこれを取得します。
@dmyersturnbull https://github.com/scikit-learn/scikit-learn/issues/6665#issuecomment -218365487からスニペットを実行すると、エラーが発生し
@lesteve私はその正確なスニペットでやりました、はい。 ただし、Anacondaのインストールをクリアし、Python 3.5.2で最初から再インストールした後、それを取得できなくなりました。
Mac OS X El Capitan10.11.3のPython3.5.2、scikit-learn 0.17.1、scipy 0.17.1、numpy1.11.1でも同じ問題が発生します。 2100ポイントを超えると機能しますが、値が低いと失敗します。
Mac OS X El Capitan10.11.3のPython3.5.2、scikit-learn 0.17.1、scipy 0.17.1、numpy1.11.1でも同じ問題が発生します。 2100ポイントを超えると機能しますが、値が低いと失敗します。
低いポイントの値に対しても同様に
再開してください
OS X 10.11.6、python 3.5.1、sklearn 0.17.1、numpy1.11.1でも同じ問題が発生します。
このデータセット: https ://dl.dropboxusercontent.com/u/103591/vals.out(with np.savetxt)
低いポイントの値に対しても同様に失敗します
@Lucidyanそれが何を意味するのかわかりません。
OS X 10.11.6、python 3.5.1、sklearn 0.17.1、numpy1.11.1でも同じ問題が発生します。
このデータセット: https ://dl.dropboxusercontent.com/u/103591/vals.out(with np.savetxt)
@pbnsilva以下に投稿されたこのスニペットを試すことができますか? 残念ながらシードが適切に設定されていない(あなたが使用する必要があるので、あなたはそれを複数回実行する必要があるかもしれませんnp.random.seed
ではなくrandom.seed
)。
import random
from sklearn.manifold import TSNE
random.seed(1)
a = np.random.uniform(size=(100,20))
TSNE(n_components=2).fit_transform(a)
ボーナスポイントあなたがにシード引数見つけることができるかどうかnp.random.seed
とrandom_state
引数TSNE
スニペット確定的になります。
あるいは、このバグがマスターで修正されたと報告する人もいました。 scikit-learnマスターを構築して、問題が解消されるかどうかを確認できますか?
@lesteve同じシステムパラメータ(Python 3.5.2、scikit-learn 0.17.1、scipy 0.17.1、Mac OS X ElCapitanのnumpy1.11.1)を使用して、少数のインスタンスで同じエラーが発生することを意味しました10.11.3)
@pbnsilva以下に投稿されたこのスニペットを試すことができますか? 残念ながら、シードが適切に設定されていないため、複数回実行する必要がある場合があります(random.seedではなくnp.random.seedを使用する必要があります)。
試してみましたが、X_SIZE <= 1750で失敗しました(Y_SIZE = 20、n_components = 2が定数になりました)。 X_SIZE = 1750を固定して定数を変更(増加)し始めると、失敗します。
@Lucidyan scikit-learn masterで同じスニペットを試して、失敗するかどうかを確認できますか?
ええ、私のために機能していません(numpy 1.11.1、El capitan.10.11、sklearn 0.17.1、python 3.5.2)迷惑なことに、機能していた古いコードが壊れています。 何を変えたの…?
@ act65私たちはこれの受け取っているようです。
したがって、まだ行っていない場合(残念ながら、読者を気にせず、「私のために働いていない」とあなたが試したことを教えてくれません)、 https://github.com/scikit-learnで上記のスニペットを実行してみて
次に、インストールが簡単な0.18リリース候補を試してみることができれば本当に素晴らしいことです(別のvirtualenvまたはcondaenvで実行することを強くお勧めします)。
pip install --pre scikit-learn -U
編集:0.18がリリースされたので、そのまま使用できます( --pre
を使用する必要はありません):
pip install scikit-learn -U
スニペットを再実行して、一部のユーザーがこのスレッドですでに報告しているように、0.18で修正されているかどうかを確認します。
0.18は数日ではないにしても数週間でリリースされる予定なので、リリース前にこの問題の根底に到達するのを手伝いたい場合は、何をしなければならないかを知っています;-)。
ええ、私の悪い、もっと明確にすべきだった。 (私は、MNISTだけで、他の人とほぼ同じことを試しました)。
とにかく、それは動作します! ありがとう:)
pip install --pre scikit-learn -U
それを修正しました
OK、報告してくれてありがとう。これは0.18リリース候補で修正されたと聞いてうれしいです。 これは、マスターで修正されたと他の人が報告したものと一致しているようです。
ただし、完全を期すために、製品コードのリリースバージョンに固執することをお勧めします。そのため、0.18リリースがリリースされるまでもう少し待つ必要がある場合があります。
@lesteve
によってインストールされたバージョン0.18rc2でスニペットを試しました
pip install --pre scikit-learn -U
そして、それは機能しているようです! 乾杯!
試してくれてありがとう
申し訳ありませんが、conda envでscikit-learn0.18( pip install --pre scikit-learn -U
)にアップグレードした後も、上記のコードスニペットでこのエラーが発生します。
これが私のシステム情報です:
OS X ElCapitanバージョン10.11.4
Python 2.7.12
sklearn 0.18(sklearn 0.17.1でも同じエラーが発生しました)
numpy 1.11.1(numpy 1.11.2でも同じエラーが発生しました)
scipy 0.18.1
ただし、Linuxシステムで同じコードスニペットを実行したところ、エラーは発生しませんでした。
Linuxシステムのシステム情報は次のとおりです。
Ubuntu 14.04.5 LTS(GNU / Linux 3.13.0-91-generic x86_64)
Python 2.7.6
sklearn 0.18
numpy 1.11.2
scipy 0.13.3
numpy、scipy、scikit-learnをアンインストールして再インストールしてみてください。 それでも失敗する場合は、別のvirtualenv(またはcondaを使用している場合はconda環境)で試して、Python環境に問題がないことを確認してください。
それでも、condaを介してsklearn 0.18( 0.18-np111py35_0
)で同じエラー( ValueError: array must not contain infs or NaNs
)が発生します。 ピップホイールはうまく機能しているようです!
それでも、condaを介してsklearn 0.18(0.18-np111py35_0)で同じエラー(ValueError:配列にinfまたはNaNを含めることはできません)が発生します。 ピップホイールはうまく機能しているようです!
うーん興味深い... mklなしでcondaパッケージを使用してみてください。つまり、 conda create -n sklearn_nomkl python scikit-learn nomkl
ようなものを使用して、それがMKLとopenblasのどちらであるかを確認できますか?
また、今後の参照スニペットとして使用できる固定ランダムシード(つまり、 np.random.RandomState(some_int)
使用)で問題を再現するスニペットを提供できる場合は、ボーナスポイントがあります。 これまで、私たちが持っているスニペットは非決定論的です( random.seed
が使用され、numpy.randomシードの影響はありません)。
もちろん問題ありません。 これは確かにBLASの問題である可能性があり、 conda create -n sklearn_nomkl python scikit-learn nomkl
envは正常に機能します。
スニペットに関して...これは興味深いものになります。 例えば、
from sklearn.manifold import TSNE
from sklearn.model_selection import train_test_split
from sklearn.datasets import load_digits
digits = load_digits()
X_train, X_test, y_train, y_test = train_test_split(digits.data,
digits.target,
random_state=1)
tsne = TSNE(random_state=1)
digits_tsne_train = tsne.fit_transform(X_train)
私のマシンで問題を再現します。 ただし、 digits_tsne_train = tsne.fit_transform(X_train)
をdigits_tsne_train = tsne.fit_transform(digits.data)
に置き換えると、問題ないようです。 この特定のケースをtravisテストに追加するには、もっと軽量な例を見つけるとよいでしょう。
編集:同じことがアイリスにも当てはまります。 iris.data
はfit_transformで機能しますが、分割されたデータセット( X_train
)は機能しません。 たぶんtrain_test_split
で面白いことが起こっています。 ただし、 X_train
とiris.data
はどちらもfloat64配列のようです...
https://github.com/scikit-learn/scikit-learn/issues/6665#issuecomment -243782185のスニペットはどうですか?決定論的にする方法が見つからず、マシンで失敗しますか?
スニペット
import numpy as np
from sklearn.manifold import TSNE
np.random.seed(1)
a = np.random.uniform(size=(100, 20))
TSNE(n_components=2, random_state=1).fit_transform(a)
エラーを再現します(ただし、nomkl envでは正常に機能します)
OK、これに感謝します。少なくとも、決定論的なスニペットができました。 記録のために、このスニペットの出力を投稿できますか?
import platform; print(platform.platform())
import sys; print("Python", sys.version)
import numpy; print("NumPy", numpy.__version__)
import scipy; print("SciPy", scipy.__version__)
import sklearn; print("Scikit-Learn", sklearn.__version__)
また、正気のために、新鮮なコンダ環境で問題を再現できることを確認できますか?
正直なところ、これからどこへ行くのかわかりません。 それ以来試していませんが、El Capital Virtualボックスで再現できず、 @ ogriselはOSXラップトップでも再現できなかったため、当時、ハードウェア固有の問題が発生している可能性があると述べました。
承知しました、
この問題の原因となるマシン:
Darwin-16.1.0-x86_64-i386-64bit
Python 3.5.2 |Continuum Analytics, Inc.| (default, Jul 2 2016, 17:52:12)
[GCC 4.2.1 Compatible Apple LLVM 4.2 (clang-425.0.28)]
NumPy 1.11.2
SciPy 0.18.1
Scikit-Learn 0.18
(新鮮なコンダ環境でテストしました)
ハードウェア固有の問題が関係している可能性があります。
私はあなたがsthにいるかもしれないと思います! 私は他のMacでそれを試しました、そしてそれはそこでうまく働きます。 唯一の違いは、古いカーネル( Darwin-15.6.0-x86_64-i386-64bit
)で実行されている上記の出力との違いです。 2番目のMacをまだmacOSSierraに更新していません。これは、この問題が発生している以前のマシンで実行されています。 OSに関連している可能性があります。 来月かそこらで2台目のマシンをSierraにアップグレードします(私はプロジェクトの途中で、物事を壊したくないです)が、Sierraへのアップデートがこの問題につながるかどうかをお知らせします2台目のマシン(またはmacOS Sierraを使用している他の誰かがテストして、OSのものかどうかを確認できます)
問題がさまざまなOSXバージョンで報告されていることを考えると、これがOSXバージョンの問題にすぎないのではないかと思います。 IIRC @ogriselの勘は、CPUアーキテクチャに関連しているということでした。
この問題をデバッグする別の(より時間のかかる)方法は、NaNがコード内のどこに現れるかを追跡することです。
IIRC @ogriselの勘は、CPUアーキテクチャに関連しているということでした。
うーん、conda scikit-learnバージョンはピップホイールとどう違うのですか? 後者は同じマシンで動作するように見えるからです。 多分それはどういうわけかコンダに関連しています
この問題をデバッグする別の(より時間のかかる)方法は、NaNがコード内のどこに現れるかを追跡することです。
https://github.com/scikit-learn/scikit-learn/blob/master/sklearn/manifold/t_sne.py#L387の勾配が爆発し、その後1つの位置で-inf
になることに気づきました。 https://github.com/scikit-learn/scikit-learn/blob/master/sklearn/manifold/t_sne.py#L386for-loopの25回目の反復
...
0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00
0.00000000e+00 0.00000000e+00 6.06587795e+32 -1.10699515e+33
-1.55245133e+34 inf -1.52569936e+33 -3.43926080e+33
-1.92332051e+32 -2.73996151e+32 -2.57570880e+33 -3.64962271e+33
...
もう一方のマシン(正常に動作するマシン)では、同じ反復の後、勾配はすべて<0になります。 そのため、どういうわけか_gradient_descent
関数が正しく機能しません(おそらくBLASのせいで)。
うーん、conda scikit-learnバージョンはピップホイールとどう違うのですか? 後者は同じマシンで動作するように見えるからです。 多分それはどういうわけかコンダに関連しています
ピップホイールはOpenBLASを使用しており、( nomkl
トリックを介して)condaでOpenBLASを使用する場合は問題がないため、これはMKLの問題のように見えます。
ちなみに、問題をデバッグするのは素晴らしい仕事です! 問題をさらに切り分けることができた場合のボーナスポイント(たとえば、反復inf
が表示される前にデータをピクルスにすることによって)。 この問題は、sklearn /多様体/_barnes_hut_tsne.pyxの一部のcythonコードで発生する可能性が非常に高くなります。
最新の調査結果を踏まえて、この問題を再開するべきではありませんか? 私もそれをヒットし、nomklトリックでそれを乗り越えることができましたが、アクティブなバグとクローズされたバグのように感じますね。
これにぶつかっている他の人: https :
あなたは正しいです、再開します。 これは深刻なものであり、ハードウェア固有のようであり、コア開発者の誰もそれを再現できませんでした。 これを修正できる唯一の方法は、問題を抱えている人々が問題のデバッグにさらに時間を費やす場合です。
ちなみに、問題をデバッグするのは素晴らしい仕事です! 問題をさらに切り分けることができた場合のボーナスポイント(たとえば、反復infが表示される前にデータをピクルスにすることによって)。 この問題は、sklearn /多様体/_barnes_hut_tsne.pyxの一部のcythonコードで発生する可能性が非常に高くなります。
11月の締め切りが過ぎた12月にさらに調査できることをうれしく思います...しかし、これをさらに分離することもできますが、そのようなハードウェア固有の問題の修正があるかどうか知りたいです。 たぶん、これが完全に解決されるまで、グラデーションにこの問題に関するメモを含むinfが含まれている場合は、より具体的な例外/警告を発生させる価値があるかもしれません。
新しいcondavirtualenvを作成し、sciki-learnマスターブランチから新たにフォークされたソースコードからsklearnのdevpバージョンを作成したところ、エラーは消えました。 devp sklearnは、MKLの代わりにOpenBLASを使用してソースコードから構築されていますか?
11月の締め切りが過ぎた12月にさらに調査できることをうれしく思います...
素晴らしいですね、どうもありがとう!
ただし、これをさらに分離することもできますが、そのようなハードウェア固有の問題の修正があるかどうかは興味があります。
修正についてはよくわかりませんが、cythonコードを分離したら、回避策の問題に変更できるかどうかが1つの希望です。 また、それはopenblasの問題である可能性があり、特にホイールがopenblasを使用しているため、上流で報告するのは素晴らしいことです。
たぶん、これが完全に解決されるまで、グラデーションにこの問題に関するメモを含むinfが含まれている場合は、より具体的な例外/警告を発生させる価値があるかもしれません。
エラーメッセージ(OS Xのみ)にアドバイスを追加するのは良い考えのように聞こえますが、「condaの使用を検討し、MKLでscikit-learnをインストールすることを検討してください」などと言ってよいかわかりません。
devp sklearnは、MKLの代わりにOpenBLASを使用してソースコードから構築されていますか?
@zhongyukは、インストールしたライブラリによって異なります。 あなたはscikit-学ぶソースからを構築していたら知るための一つの方法は、相当実行することですldd
(Googleが言っているようだotool -L
)上のsklearn/cluster/_k_means.so
(名前が異なる場合になりますPython 3を使用しています。つまり、 sklearn/cluster/_k_means.cpython-35m-x86_64-linux-gnu.so
ようなものです)。 たとえば、私のUbuntuマシンでは、次のようになります。
sklearn/cluster/_k_means.so:
linux-vdso.so.1 => (0x00007ffc2312a000)
libmkl_intel_lp64.so => /home/lesteve/miniconda3/envs/py27/lib/libmkl_intel_lp64.so (0x00007fadc2865000)
libmkl_intel_thread.so => /home/lesteve/miniconda3/envs/py27/lib/libmkl_intel_thread.so (0x00007fadc0ee4000)
libmkl_core.so => /home/lesteve/miniconda3/envs/py27/lib/libmkl_core.so (0x00007fadbf483000)
libiomp5.so => /home/lesteve/miniconda3/envs/py27/lib/libiomp5.so (0x00007fadbf139000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fadbeeeb000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fadbebe1000)
libpython2.7.so.1.0 => /home/lesteve/miniconda3/envs/py27/lib/libpython2.7.so.1.0 (0x00007fadbe7fa000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fadbe431000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fadbe22c000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fadbe016000)
/lib64/ld-linux-x86-64.so.2 (0x0000563bdeda1000)
libutil.so.1 => /lib/x86_64-linux-gnu/libutil.so.1 (0x00007fadbde12000)
したがって、3行目から、MKLを使用していることがわかります。
しかし、「condaの使用を検討し、MKLでscikit-learnをインストールする」など、何を言うべきかわかりません。
私はあなたがそれをひっくり返したと思うことを書きたかっただけです:ホイールは見つけて動作し、問題は私がMKLでコンダを介してそれを使用していたときにのみ発生しました...今、私は何らかの形で良いニュースがあると思います:私はただしたかっただけです以前にこの問題を確認させた上記の例を再実行します
import numpy as np
from sklearn.manifold import TSNE
np.random.seed(1)
a = np.random.uniform(size=(100, 20))
TSNE(n_components=2, random_state=1).fit_transform(a)
そして、私はもはやこの問題を抱えていません。 先週、他の問題のためにminicondaを再インストールしたことを覚えています。 古いコンダの問題に関係していると思いますか? この問題を抱えている他の人が、condaを更新/再インストールして、問題が解決するかどうかを確認できれば素晴らしいと思います。 その間、以前にインストールしたcondaバージョンを見つけるために、古いバックアップ状態を見つけることができるかどうかを確認しようとします。 (今、私はコンダ4.2.12を持っています)
ちょうど私が走ったと言うたくotool -L
上sklearn/manifold/_barnes_hut_tsne.so
、それは確かにBLASを使用しているように(私はこれがt_sne.pyコンパイルされたファイルであると仮定?)、それはそうです。 そして、エラーを投げたものはMKLを使用しているようです。
私が持っているcondaバージョンは4.2.13で、エラーをスローするenvとソースビルドsklearn(エラーをスローしない)の両方がconda内にあります。
うーん、面白いので、結局のところコンダの問題ではありません...なぜ今それが私のために働くのか興味があります:/
(変更されたと思うのは(condaの再インストールを除く)すべて再起動でした:P)
私はあなたがそれをひっくり返したと思うことを書きたかっただけです:ホイールは見つけて動作し、問題は私がMKLでコンダを介してそれを使用していたときにのみ発生しました
ええ、それについては申し訳ありません。 次回のために正しく覚えられるように、号のタイトルを編集します。
うーん、面白いので、結局のところコンダの問題ではありません...なぜ今それが私のために働くのか興味があります:/
(変更されたと思うのは(condaの再インストールを除く)すべて再起動でした:P)
うーん、ランダムにmklバージョンを推測しますが、 conda info mkl
の出力が最新のmklバージョン(11.3.3)であると信じている場合は2016-05-13のものです。
@zhongyukは、mklを使用するconda env内でscikit-learnを構築しようとします。これで、mklを取得するのに十分なはずです(この場合、 make clean
を実行してからmake in
を実行することをお勧めします)。
@lesteveソースコード(ブランチ0.18リリース)から2つのconda仮想環境でscikit-learnを構築しましたが、1つはMKLを使用しており、実際にエラーがスローされます。 libBLASを使用するものはエラーをスローしません。
実行中の出力otool -L
のsklearn/manifold/_barnes_hut_tsne.so
ここにある(場合にMKLのバージョンはあなたに手がかりを与えます?)
`` `@ rpath / libmkl_intel_lp64.dylib(互換性バージョン0.0.0、現在のバージョン0.0.0)
@ rpath / libmkl_intel_thread.dylib(互換性バージョン0.0.0、現在のバージョン0.0.0)
@ rpath / libmkl_core.dylib(互換性バージョン0.0.0、現在のバージョン0.0.0)
@ rpath / libiomp5.dylib(互換性バージョン5.0.0、現在のバージョン5.0.0)
/usr/lib/libSystem.B.dylib(互換性バージョン1.0.0、現在のバージョン1226.10.1)
@zhongyuk素晴らしい! 完全を期すために、(MKLコンダ環境で) conda list '(mkl|cython|numpy|scipy)$'
の出力を投稿できますか? 私たちがそれにいる間、あなたのCPU情報(Googleによればsysctl -n machdep.cpu.brand_string
)とあなたのプラットフォーム情報( python -c 'import platform; print(platform.platform())'
)は素晴らしいでしょう。
本当に素晴らしいのは、 @ rabstが停止した場所を続行し、問題をさらに切り分けることです。
https://github.com/scikit-learn/scikit-learn/issues/6665#issuecomment -258311980
これはBLASに関連しているので、私の勘では、この行で問題が発生し、グラデーションに非有限値が含まれるようになります。
@lesteve conda MKL環境情報の出力:
Cython 0.25.1 <pip>
mkl 11.3.3 0
numpy 1.11.1 <pip>
numpy 1.11.1 py27_0
scipy 0.18.1 np111py27_0
CPU情報: Intel(R) Core(TM) i5-5257U CPU @ 2.70GHz
プラットフォーム情報: Darwin-15.4.0-x86_64-i386-64bit
@rabstが他のコメントで見つけた勾配爆発の問題と、今週および/または来週のいつかあなたが指摘した行を調べて、興味深い発見があればみんなに最新の状態に保ちます。
@zhongyukそれが
@rasbtうーん、シエラで問題が解決するかどうか疑問に思います...まだOSをアップグレードしたくないb / z TensorFlowがまだシエラをサポートしていないことをどこかで読んだと思いました(間違っているか、もはや真実ではない可能性があります)どこで、どれくらい前に読んだか覚えていないので、もう)? そして、TF依存関係でプロジェクトを壊したくない
@zhongyukうーん、それが関連している可能性は低いと思います。 minicondaを再インストールする前に、macOSSierraでも問題が発生しました。 PS:TensorflowはSierraで問題なく動作しますが、MacでCPUとプロトタイピングのみを行うため、Sierraに関連するGPUの問題についてはわかりません。
@rasbtうーん、TFがシエラでうまく機能することを知っておくのは良いことです。 プラットフォームのsklearn/manifold/_barnes_hut_tsne.so
ファイルでotool -L
を実行して、sklearnが使用している数学ライブラリを確認しますか? 少なくともそうすれば、minicondaを再インストールした後に問題が解決したかどうかを知ることができますか?
_barnes_hut_tsne.cpython-35m-darwin.so
次のようになります:
@rpath/libmkl_intel_lp64.dylib (compatibility version 0.0.0, current version 0.0.0)
@rpath/libmkl_intel_thread.dylib (compatibility version 0.0.0, current version 0.0.0)
@rpath/libmkl_core.dylib (compatibility version 0.0.0, current version 0.0.0)
@rpath/libiomp5.dylib (compatibility version 5.0.0, current version 5.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1)
@rasbtうーん、それは本当に面白いです。 MKLも使用しています。 これが何を意味するのかを推測するのに十分な数学ライブラリについては知りません... @ lesteveはおそらくこれからもっと推測できるでしょうか?
プラットフォームにlibmkl_intel_lp64.dylib
がロードされていないことに気づきました...問題の原因となった可能性はありますか?
うわー、はい! libmkl_intel_lp64.dylib
がロードされていないことが原因です!!! 私が見つかりました。スタックオーバーフローにこのスレッドをしてから走っconda install --debug mkl
、そして走ったotool -L
上sklearn/manifold/_barnes_hut_tsne.so
ファイルは、 libmkl_intel_lp64.dylib
アップロード、およびコードスニペットを走りました、エラーがなくなりました! 5つのチームワークがあります! @rasbt
他の誰かが自分のプラットフォームをチェックして、 libmkl_intel_lp64.dylib
がロードされていることを確認した後、エラーが消えたかどうかを確認できれば、それは素晴らしいことです。
@lesteve多くのpplがこの問題にぶつかったように見えるので、完全なMKLライブラリを抽出しない(これまでの状況の私の理解)コンダに関連しているように見えますが、そうではありませんscikit-learnのバグですが、(OS X)ユーザーに何らかのコメントや警告またはエラーメッセージを追加するとよいと思いますか? そうすれば、少なくともMKL libがプラットフォームで完全に抽出されているかどうかを確認し、抽出されていない場合は修正できますか?
@zhongyuk素晴らしい、あなたがそれを絞り込むことができたと聞いてうれしいです! うまくいけば、それはlibmkl_intel_lp64.dylib
の壊れたリンク/不完全なインストールだけです-それは素晴らしいでしょう(何が起こっているのかを知るという点で):)。 それはまた、Minicondaを再インストールした後にそれが今私のために働く理由を説明するでしょう...誰かが「修正」を試すことができれば素晴らしいでしょう。
前述のlibmkl_intel_lp64.dylib
実際にこの問題を引き起こした場合、残りの質問はscikit-learnでそれをどのように処理するかです。 つまり、この「バグ」は一種の恐ろしいものであり、 libmkl_intel_lp64.dylib
原因であると人々が理解するのは少し難しいかもしれません。 パフォーマンスの面で非常に煩わしい可能性があるため、scikit-learnのコードに追加の「勾配にinfレイズエラー+メッセージが含まれている場合」を挿入しない可能性があります。 ただし、インストールやT-SNEドキュメントにメモやコメントを追加することをお勧めします。
簡単な更新を追加したいだけです。コンダに2つの仮想環境があり、どちらもMKLを使用しています。 1つはnumpy 1.11.1
を備えており、もうnumpy 1.11.2
つはotool -L
を実行すると、両方にlibmkl_intel_lp64.dylib
ロードされていないことがわかります。 libmkl_intel_lp64.dylib
ロードされていることを確認した後、エラーはnumpy 1.11.2
の仮想環境で消えました。 ただし、エラーはnumpy 1.11.1
環境に表示されたままnumpy
を1.11.2にアップグレードした後、どちらのconda仮想環境でもエラーを再現できなくなりました。 複雑に聞こえ、エラーの正確な原因はまだ不明であるため、MKLライブラリの読み込みが不完全でscikit-learnに依存するライブラリ(おそらくnumpy?)が織り交ぜられた複雑さであると推測されます。 (MKLとnumpy 1.11.1
を使用してvirtualenvを作成して、エラーが再現されるかどうかを確認したことはありませんが。)
そして、私はある種のメモ、コメント、またはドキュメントを追加することについての2番目の@rasbt提案です!
@zhongyukあなたがそれを修正してくれてうれしいです! condaを使用してパッケージを再インストールすると役立つ場合があるようですが、問題の原因を明確に把握していないようです:(。
これはコンダのバグですよね? または、誰かがcondaを使用しないバグを経験しましたか?
numpyホイールをインストールし、その上にcondaを介してscikit-learnを実行することで、再現する方法を見つけることができました(https://github.com/scikit-のconda list
出力からヒントを得ました) learn / scikit-learn / issues / 6665#issuecomment-262800762ここで、2つのnumpy
がリストされています)。
conda create -n tmp python=3 -y
. activate tmp
pip install numpy -y
conda install scikit-learn -y
次に、 https: //github.com/scikit-learn/scikit-learn/issues/6665#issuecomment-262800762からスニペットを実行し
したがって、これは、pipとcondaを介してインストールされたnumpyを混合するときに発生しているようです。 私の本では、特定のパッケージにpipとcondaを混在させることは決して良い考えではありませんが、これは非常に簡単に気付かずに発生する可能性があると思います(たとえば、pipを介してnumpyに依存するプロジェクトをインストールしてから、condaを介してscikit-learn )。
なぜこれが正確に起こるのか私にはわかりません...そしてそれはOSXでのみ起こるようです(つまり私のUbuntuボックスでは起こりません)。
これによって影響を受ける人にとって、これはそれを修正するはずです:
conda remove numpy --force -y
pip uninstall numpy -y
conda install numpy
それがうまくいかない場合はお知らせください。
深く掘り下げてくれてありがとう(もう一度!) @ lesteve
正直に言うと、これの底に達することは決してないだろうと思いました:)! OK、それは完全に底ではありませんが、私に関する限り、それは十分に低いです。
私はまだpipとcondaの両方がインストールされたnumpy内で何が起こっているのかを理解したいことを認めなければなりません...
こんにちは
2つのセットアップを試しました。
ただし、TSNEは1つのセットアップ(Tensorflowが非アクティブ化されているPython-3.x)で適切に機能します。
TSNEは、他のセットアップ(Tensorflowがアクティブ化されているPython 2.x)では機能しません。
TSNEがうまく機能するセットアップ:
ターミナル:
Macbook:~ BG$ which jupyter
/Users/BG/anaconda/bin/jupyter
ジュピエノート:
import sys
print (sys.version)
>>
3.5.2 |Anaconda 4.2.0 (x86_64)| (default, Jul 2 2016, 17:52:12)
[GCC 4.2.1 Compatible Apple LLVM 4.2 (clang-425.0.28)]
注:試しました
conda remove numpy --force -y
pip uninstall numpy -y
conda install numpy
Tensorflowを非アクティブ化してTSNEを適切に機能させるため。
ただし、以下の新しいセットアップ(Tensorflowを使用する必要がある場合)では、これは機能しなくなります。
——————————————————————————————
TSNEが機能しないセットアップ:
ターミナル:
Macbook:~$ source activate tensorflow
(tensorflow) Macbook:~$ which jupyter
/Users//anaconda/envs/tensorflow/bin/jupyter
(tensorflow) Macbook:~$
ジュピエノート:
import sys
print (sys.version)
>>
2.7.13 |Continuum Analytics, Inc.| (default, Dec 20 2016, 23:05:08)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.57)]
エラー:
ValueError: array must not contain infs or NaNs
助言がありますか ? どうもありがとう
面白い。 テンソルフローとは何の関係もないと思います。 私の推測では
[GCC4.2.1互換性のあるAppleLLVM 4.2(clang-425.0.28)]
vs
[GCC4.2.1互換性のあるAppleLLVM 6.0(clang-600.0.57)]
犯人ですか!?
回答ありがとうございます:)提案された解決策/ to_do_listはありますか?
両方を使用する必要があります
Tensorflowと
TSNE
Jupyterノートブックで...
ところで:Python 2.xで「from__future__ import Division」を試したところ、問題は解決しませんでした。
うーん、それが役立つかどうかはわかりません-個人的には、この不思議な問題はもう発生していません
Python 3.5.3 |Continuum Analytics, Inc.| (default, Feb 22 2017, 20:51:01)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.57)] on darwin
私もTf(現在は1.0)を使用しており、実行時にこのError: ValueError: array must not contain infs or NaNs
問題は発生しなくなりました。
import numpy as np
from sklearn.manifold import TSNE
np.random.seed(1)
a = np.random.uniform(size=(100, 20))
TSNE(n_components=2, random_state=1).fit_transform(a)
以前は機能しませんでした。
たぶん、新しいpython 3.5 envを作成し、上記のスニペットを試して、エラーなしで機能するかどうかを確認してください。
conda create -n yourenv python=3.5 numpy scipy scikit-learn
source activate yourenv
pip install tensorflow(-gpu)
こんにちはrasbt、
はい、Python3.5でTSNEを動作させました。
ただし、他の理由でPython 2.7を使用したほうがよいので、引き続き調査する必要があります...クロスフィンガー
ご協力いただきありがとうございます。
古い(古い)Miniconda / Anaconda 2.7ディストリビューションがインストールされていますか? この場合、最新のものの1つをインストールすることを検討するか、condaルートまたはデフォルトのPythonを更新して、もう一度試してみてください(または、 conda create -n yourenv python=3.5 numpy scipy scikit-learn
で3.5を2.7に置き換えて新しいpy 27 envを作成します)? (これが本当に理由かどうかはわかりませんが、 LLVM 4.2 (clang-425.0.28)
が問題になる可能性があります。エラーは[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.57)]
経由では発生しないようです)
更新:TSNE(perplexity = 30、n_components = 2、init = 'pca'、n_iter = 1000、 method = 'exact' )それを機能させる...
method = 'exact'がトリックでした。
また、この問題が発生しています。 method = 'exact'を使用することは私にとってはうまくいくようですが、それはとても痛々しいほど遅いです。 人々が見つけた他の解決策は本当にありませんか?
https://github.com/scikit-learn/scikit-learn/issues/6665#issuecomment-264029983およびhttps://github.com/scikit-learn/scikit-learn/issues/6665#issuecomment-264087057を読んだことがあり
この問題を再現する唯一の方法は、同じconda環境にpipとcondaの両方を使用してnumpyをインストールすることでした。 conda環境を最初から作成する場合、この問題は発生しないはずです。
問題がこの説明と一致しないように思われる場合は、conda環境を作成するために実行した正確なコマンドを投稿してください。再現を試みることができます。
こんにちは、
上記のコメントを読んで再現できます。 数週間前からコードを再実行しましたが、この問題が発生しました。 この問題を再現する最小限の例を次に示します。
from sklearn.manifold import TSNE
a = [[1,2,3],[4,5,6], [7,8,9]]
TSNE(n_components=2,).fit_transform(a)
そしての出力
import platform; print(platform.platform())
import sys; print("Python", sys.version)
import numpy; print("NumPy", numpy.__version__)
import scipy; print("SciPy", scipy.__version__)
import sklearn; print("Scikit-Learn", sklearn.__version__)
です
Darwin-16.5.0-x86_64-i386-64bit
Python 3.6.0 |Anaconda 4.3.0 (x86_64)| (default, Dec 23 2016, 13:19:00)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.57)]
NumPy 1.12.1
SciPy 0.19.0
Scikit-Learn 0.18.1
この場合も、メソッドを正確( TSNE(method='exact')
)に変更すると、エラーが解消されます。
より一般的には、sklearnのTSNE(同一のパープレキシティおよびその他のパラメーターを使用)を使用した場合、Laurens van der Maatenによって公開されたbh実装およびMATLABバージョンとは大きく異なる結果に気づきました。 つながりがあるのかな?
それはそれを修正しました。 申し訳ありませんが、再インストールしたnumpy、scikit learn、scipyを個別にアンインストールしましたが、6665のようにはなりませんでした。
私はここで報告されたのと同じ問題を抱えていました、そして私はコンダを使いません。
私のPythonバージョンはmacOSSierra10.12.4にbrew経由でインストールされます
Python 3.6.1
scipy==0.19.0
scikit-learn==0.18.1
numpy==1.11.1
mode='exact'
追加すると、問題が解決しました。
@lesteve :あなたが説明したセットアップを使用してこのエラーが発生しました(numpyの2つのバージョンがインストールされています)。 numpyのcondaインストールをpipインストール(1.12.1)と同じバージョンに更新するだけでうまくいきました。 ただし、2つのバージョンを用意するつもりはなかったので、pip numpyinstallを削除しました:)
@lesteve :解決策をありがとう! 私はたまたまこのエラーが発生し、それからこの議論を見つけました。 重複したバージョンのnumpyを削除したら、すぐに修正してください。
複製私はnumpyのpipインストールを削除し、condaを更新しました。
ダーウィン-16.7.0-x86_64-i386-64ビット
( 'Python'、 '2.7.13 | Anaconda custom(x86_64)|(デフォルト、2016年12月20日、23:05:08)\ n [GCC4.2.1互換性のあるAppleLLVM 6.0(clang-600.0.57)]')
( 'NumPy'、 '1.13.1')
( 'SciPy'、 '0.19.0')
( 'Scikit-Learn'、 '0.18.1')
私のLinuxマシンLinuxでは問題ないようです。
Linux-3.0.101-0.47.71-default-x86_64-with-SuSE-11-x86_64
( 'Python'、 '2.7.12 | Anaconda 2.3.0(64ビット)|(デフォルト、2016年7月2日、17:42:40)\ n [GCC 4.4.7 20120313(Red Hat 4.4.7-1) ] ')
( 'NumPy'、 '1.12.1')
( 'SciPy'、 '0.19.1')
( 'Scikit-Learn'、 '0.18.1')
@wolfiexだからあなたはやった
conda remove numpy --force -y
pip uninstall numpy -y
conda install numpy
やや関連しているt-SNEにいくつかの修正があるscikit-learn0.19に更新することをお勧めします
今同じエラーが発生する
こんにちは@rahulsnair 、再現可能なコード、トレースバック、使用しているバージョンを使用して、新しい問題を開いてもよろしいですか? この問題はかなり古く、コードが大幅に変更されています。 ありがとう!
最も参考になるコメント
これによって影響を受ける人にとって、これはそれを修正するはずです:
それがうまくいかない場合はお知らせください。