主頁 > 移動端開發 > Python之sklearn:GridSearchCV()函式的簡介、具體案例、使用方法詳細攻略

Python之sklearn:GridSearchCV()函式的簡介、具體案例、使用方法詳細攻略

2020-10-19 00:38:21 移動端開發

Python之sklearn:GridSearchCV()函式的簡介、具體案例、使用方法詳細攻略

目錄

GridSearchCV()函式的簡介、具體案例、使用方法詳細攻略


GridSearchCV()函式的簡介、具體案例、使用方法詳細攻略

class GridSearchCV Found at: sklearn.model_selection._search

class GridSearchCV(BaseSearchCV):
"""Exhaustive search over specified parameter values for an estimator.
Important members are fit, predict.GridSearchCV implements a "fit" and a "score" method. It also implements "predict", "predict_proba", "decision_function", "transform" and "inverse_transform" if they are implemented in the estimator used. The parameters of the estimator used to apply these methods are optimized by cross-validated grid-search over a parameter grid.
Read more in the :ref:`User Guide <grid_search>`.

在以下位置找到GridSearchCV類:sklearn.model_selection._search
GridSearchCV類(BaseSearchCV):
“”“詳盡搜索指定引數的估計值
重要的成員是fit,predict.GridSearchCV實作“ fit”和“ score”方法, 如果在使用的估算器中實作了``predict'',`predict_proba'',``decision_function'',``transform''和``inverse_transform'',則還可以實作它們, 通過對引數網格進行交叉驗證的網格搜索來優化用于應用這些方法的估計器的引數
在:ref:?用戶指南<grid_search>`中了解更多資訊,

Parameters
----------
estimator : estimator object. This is assumed to implement the scikit-learn estimator interface. Either estimator needs to provide a ``score`` function, or ``scoring`` must be passed.

param_grid : dict or list of dictionaries. Dictionary with parameters names (`str`) as keys and lists of parameter settings to try as values, or a list of such dictionaries, in which case the grids spanned by each dictionary in the list are explored. This enables searching over any sequence of parameter settings.

scoring : str, callable, list/tuple or dict, default=None. A single str (see :ref:`scoring_parameter`) or a callable (see :ref:`scoring`) to evaluate the predictions on the test set.
For evaluating multiple metrics, either give a list of (unique) strings or a dict with names as keys and callables as values.
NOTE that when using custom scorers, each scorer should return a single value. Metric functions returning a list/array of values can be wrapped into multiple scorers that return one value each.
See :ref:`multimetric_grid_search` for an example.
If None, the estimator's score method is used.

n_jobs : int, default=None. Number of jobs to run in parallel. ``None`` means 1 unless in a :obj:`joblib.parallel_backend` context. ``-1`` means using all processors. See :term:`Glossary <n_jobs>` for more details.
.. versionchanged:: v0.20. `n_jobs` default changed from 1 to None

pre_dispatch : int, or str, default=n_jobs. Controls the number of jobs that get dispatched during parallel execution. Reducing this number can be useful to avoid an explosion of memory consumption when more jobs get dispatched than CPUs can process. This parameter can be:
- None, in which case all the jobs are immediately created and spawned. Use this for lightweight and fast-running jobs, to avoid delays due to on-demand spawning of the jobs
- An int, giving the exact number of total jobs that are spawned
- A str, giving an expression as a function of n_jobs, as in '2*n_jobs'

iid : bool, default=False. If True, return the average score across folds, weighted by the number of samples in each test set. In this case, the data is assumed to be identically distributed across the folds, and the loss minimized is the total loss per sample, and not the mean loss across the folds.
.. deprecated:: 0.22. Parameter ``iid`` is deprecated in 0.22 and will be removed in 0.24

cv : int, cross-validation generator or an iterable, default=None. Determines the cross-validation splitting strategy. Possible inputs for cv are:
- None, to use the default 5-fold cross validation,
- integer, to specify the number of folds in a `(Stratified)KFold`,
- :term:`CV splitter`,
- An iterable yielding (train, test) splits as arrays of indices.
For integer/None inputs, if the estimator is a classifier and ``y`` is either binary or multiclass, :class:`StratifiedKFold` is used. In all other cases, :class:`KFold` is used.
Refer :ref:`User Guide <cross_validation>` for the various cross-validation strategies that can be used here.
.. versionchanged:: 0.22. ``cv`` default value if None changed from 3-fold to 5-fold.

refit : bool, str, or callable, default=True. Refit an estimator using the best found parameters on the whole dataset. For multiple metric evaluation, this needs to be a `str` denoting the scorer that would be used to find the best parameters for refitting the estimator at the end.
Where there are considerations other than maximum score in choosing a best estimator, ``refit`` can be set to a function which returns the selected ``best_index_`` given ``cv_results_``. In that case, the ``best_estimator_`` and ``best_params_`` will be set according to the returned ``best_index_`` while the ``best_score_`` attribute will not be available.
The refitted estimator is made available at the ``best_estimator_`` attribute and permits using ``predict`` directly on this ``GridSearchCV`` instance.
Also for multiple metric evaluation, the attributes ``best_index_``, ``best_score_`` and ``best_params_`` will only be available if ``refit`` is set and all of them will be determined w.r.t this specific scorer.
See ``scoring`` parameter to know more about multiple metric evaluation. .. versionchanged:: 0.20. Support for callable added.

verbose : integer. Controls the verbosity: the higher, the more messages.

error_score : 'raise' or numeric, default=np.nan. Value to assign to the score if an error occurs in estimator fitting. If set to 'raise', the error is raised. If a numeric value is given, FitFailedWarning is raised. This parameter does not affect the refit step, which will always raise the error.

return_train_score : bool, default=False. If ``False``, the ``cv_results_`` attribute will not include training scores. Computing training scores is used to get insights on how different parameter settings impact the overfitting/underfitting trade-off. However computing the scores on the training set can be computationally expensive and is not strictly required to select the parameters that yield the best generalization performance.
.. versionadded:: 0.19
.. versionchanged:: 0.21. Default value was changed from ``True`` to ``False``

引數
----------
estimator :估計器物件,假定這樣做是為了實作scikit-learn估計器介面,估算器需要提供一個“得分”功能,或者必須傳遞“得分”,

param_grid :字典或字典串列,使用引數名稱(`str`)作為鍵的字典,以及將嘗試用作值的引數設定串列,或此類字典的串列,在這種情況下,將探索串列中每個字典所跨越的網格,這樣可以搜索任何順序的引數設定

scoring :str,可呼叫,串列/元組或字典,默認=無,單個str(請參閱scoring_parameter)或可呼叫項(請參閱scoring)來評估測驗集上的預測,
要評估多個指標,請給出(唯一的)字串串列或以名稱為鍵,將可呼叫項為值的字典,

請注意,使用自定義計分器時,每個計分器應回傳一個單個值,回傳值串列/陣列的度量函式可以包裝到多個計分器中,每個計分器都回傳一個值,
有關示例,請參見multimetric_grid_search,
如果為None,則使用估算器的計分方法

n_jobs :int,默認=無,要并行運行的作業數,除非在:obj:`joblib.parallel_backend`背景關系中,否則“ None``表示1, -1表示使用所有處理器,有關更多詳細資訊,請參見術語<n_jobs>`,

..版本已更改:: v0.20, `n_jobs`默認從1更改為None

pre_dispatch 或str,默認= n_jobs,控制在并行執行期間分派的作業數量,當調度的作業數量超過CPU的處理能力時,減少此數量可能有助于避免記憶體消耗激增,該引數可以是:

-None,在這種情況下,將立即創建并產生所有作業,使用它進行輕量級和快速運行的作業,以避免因按需生成作業而造成延遲
-一個int,給出產生的確切總作業數
-一個str,根據n_jobs給出運算式,如'2 * n_jobs'

iid :bool,默認= False,如果為True,則按倍數回傳平均得分,并按每個測驗集中的樣本數加權,在這種情況下,假設資料在折痕上分布相同,并且最小化的損失是每個樣品的總損失,而不是折痕的平均損失
..不建議使用:: 0.22,引數“ iid”在0.22中已棄用,在0.24中將被洗掉

cv :int,交叉驗證生成器或可迭代的default = None,確定交叉驗證拆分策略,簡歷的可能輸入是:
-None,要使用默認的5-fold交叉驗證
-integer整數,用于指定“(分層)KFold”中的折疊次數,
-:CV splitter`,
-可迭代的yielding (訓練,測驗)拆分為索引陣列,
對于整數/無輸入,如果估計器是分類器,而y是二進制或多類,則使用:StratifiedKFold,在所有其他情況下,都使用KFold類,
請參閱:ref:?用戶指南<cross_validation>`,了解可以在此處使用的各種交叉驗證策略,
..版本已更改:: 0.22,如果無從3倍更改為5倍,則為cv默認值,

refit :bool,str或callable,默認為True,使用在整個資料集中找到的最佳引數重新擬合估算器,對于多指標評估,這需要是一個“ str”,表示計分器,該計分器將被用于尋找最佳引數,以最終擬合估計器
在選擇最佳估算器時,除了最大分數以外,還可以將``refit''設定為一個函式,該函式在給定``cv_results_''的情況下回傳所選的``best_index_'',在這種情況下,將根據回傳的``best_index_''設定``best_estimator_''和``best_params_'',而``best_score_''屬性將不可用
可以在“ best_estimator_”屬性中使用經過重新調整的估計器,并允許在此“ GridSearchCV”實體上直接使用“預測”,
同樣對于多指標評估,屬性``best_index _'',``best_score_''和``best_params_''僅在設定了``refit''后才可用,并且將通過該特定計分器確定所有屬性,
請參閱``評分''引數以了解有關多指標評估的更多資訊, ..版本已更改:: 0.20,支持添加可呼叫,

verbose :整數,控制詳細程度:越高,訊息越多

error_score :“raise”或數字,默認值= np.nan,如果估算器擬合出現錯誤,則分配給分數的值,如果設定為“ raise”,則會引發錯誤,如果給出數值,則引發FitFailedWarning,此引數不會影響重新安裝步驟,這將始終引發錯誤,

return_train_score :布林值,默認為False, 如果為False,則cv_results_屬性將不包括訓練得分, 計算培訓分數用于了解不同的引數設定如何影響過擬合/欠擬合權衡, 但是,在訓練集上計算分數可能會在計算上昂貴,并且并非嚴格要求選擇產生最佳泛化性能的引數,
..版本添加:: 0.19
..版本已更改:: 0.21, 默認值從``True''更改為``False''

Examples
--------
>>> from sklearn import svm, datasets
>>> from sklearn.model_selection import GridSearchCV
>>> iris = datasets.load_iris()
>>> parameters = {'kernel':('linear', 'rbf'), 'C':[1, 10]}
>>> svc = svm.SVC()
>>> clf = GridSearchCV(svc, parameters)
>>> clf.fit(iris.data, iris.target)
GridSearchCV(estimator=SVC(),
param_grid={'C': [1, 10], 'kernel': ('linear', 'rbf')})
>>> sorted(clf.cv_results_.keys())
['mean_fit_time', 'mean_score_time', 'mean_test_score',...
'param_C', 'param_kernel', 'params',...
'rank_test_score', 'split0_test_score',...
'split2_test_score', ...
'std_fit_time', 'std_score_time', 'std_test_score']

Attributes
----------
cv_results_ : dict of numpy (masked) ndarrays.A dict with keys as column headers and values as columns, that can be imported into a pandas ``DataFrame``.

For instance the below given table
+------------+-----------+------------+-----------------+---+---------+
|param_kernel|param_gamma|param_degree|split0_test_score|...
|rank_t...|
+============+===========+============+========
=========+===+=========+
| 'poly' | -- | 2 | 0.80 |...| 2 |
+------------+-----------+------------+-----------------+---+---------+
| 'poly' | -- | 3 | 0.70 |...| 4 |
+------------+-----------+------------+-----------------+---+---------+
| 'rbf' | 0.1 | -- | 0.80 |...| 3 |
+------------+-----------+------------+-----------------+---+---------+
| 'rbf' | 0.2 | -- | 0.93 |...| 1 |
+------------+-----------+------------+-----------------+---+---------+
will be represented by a ``cv_results_`` dict of::
{
'param_kernel': masked_array(data = ['poly', 'poly', 'rbf', 'rbf'],
mask = [False False False False]...)
'param_gamma': masked_array(data = [-- -- 0.1 0.2],
mask = [ True True False False]...),
'param_degree': masked_array(data = [2.0 3.0 -- --],
mask = [False False True True]...),
'split0_test_score' : [0.80, 0.70, 0.80, 0.93],
'split1_test_score' : [0.82, 0.50, 0.70, 0.78],
'mean_test_score' : [0.81, 0.60, 0.75, 0.85],
'std_test_score' : [0.01, 0.10, 0.05, 0.08],
'rank_test_score' : [2, 4, 3, 1],
'split0_train_score' : [0.80, 0.92, 0.70, 0.93],
'split1_train_score' : [0.82, 0.55, 0.70, 0.87],
'mean_train_score' : [0.81, 0.74, 0.70, 0.90],
'std_train_score' : [0.01, 0.19, 0.00, 0.03],
'mean_fit_time' : [0.73, 0.63, 0.43, 0.49],
'std_fit_time' : [0.01, 0.02, 0.01, 0.01],
'mean_score_time' : [0.01, 0.06, 0.04, 0.04],
'std_score_time' : [0.00, 0.00, 0.00, 0.01],
'params' : [{'kernel': 'poly', 'degree': 2}, ...],
}

NOTE

The key ``'params'`` is used to store a list of parameter settings dicts for all the parameter candidates.
The ``mean_fit_time``, ``std_fit_time``, ``mean_score_time`` and ``std_score_time`` are all in seconds.
For multi-metric evaluation, the scores for all the scorers are available in the ``cv_results_`` dict at the keys ending with that scorer's name (``'_<scorer_name>'``) instead of ``'_score'`` shown above. ('split0_test_precision', 'mean_train_precision' etc.)

best_estimator_ : estimator. Estimator that was chosen by the search, i.e. estimator which gave highest score (or smallest loss if specified) on the left out data. Not available if ``refit=False``.
See ``refit`` parameter for more information on allowed values.

best_score_ : float. Mean cross-validated score of the best_estimator. For multi-metric evaluation, this is present only if ``refit`` is specified. This attribute is not available if ``refit`` is a function.

best_params_ : dict. Parameter setting that gave the best results on the hold out data. For multi-metric evaluation, this is present only if ``refit`` is specified.

best_index_ : int. The index (of the ``cv_results_`` arrays) which corresponds to the best candidate parameter setting. The dict at ``search.cv_results_['params'][search.best_index_]`` gives the parameter setting for the best model, that gives the highest mean score (``search.best_score_``).
For multi-metric evaluation, this is present only if ``refit`` is specified.

scorer_ : function or a dict. Scorer function used on the held out data to choose the best parameters for the model. For multi-metric evaluation, this attribute holds the validated ``scoring`` dict which maps the scorer key to the scorer callable.

n_splits_ : int. The number of cross-validation splits (folds/iterations).

refit_time_ : float. Seconds used for refitting the best model on the whole dataset. This is present only if ``refit`` is not False.
.. versionadded:: 0.20

Notes
-----
The parameters selected are those that maximize the score of the left out data, unless an explicit score is passed in which case it is used instead.
If `n_jobs` was set to a value higher than one, the data is copied for each point in the grid (and not `n_jobs` times). This is done for efficiency reasons if individual jobs take very little time, but may raise errors if the dataset is large and not enough memory is available. A workaround in this case is to set `pre_dispatch`. Then, the memory is copied only `pre_dispatch` many times. A reasonable value for `pre_dispatch` is `2 * n_jobs`.

See Also
---------
:class:`ParameterGrid`:
generates all the combinations of a hyperparameter grid.

:func:`sklearn.model_selection.train_test_split`:
utility function to split the data into a development set usable for fitting a GridSearchCV instance and an evaluation set for its final evaluation.

:func:`sklearn.metrics.make_scorer`:
Make a scorer from a performance metric or loss function.

"""

屬性
----------
cv_results_:numpy(masked)ndarrays的字典,字典可以將鍵作為列標題,將值作為列,可以將其匯入到pandas ``DataFrame''中

例如下面的表格

+------------+-----------+------------+-----------------+---+---------+
|param_kernel|param_gamma|param_degree|split0_test_score|...
|rank_t...|
+============+===========+============+========
=========+===+=========+
| 'poly' | -- | 2 | 0.80 |...| 2 |
+------------+-----------+------------+-----------------+---+---------+
| 'poly' | -- | 3 | 0.70 |...| 4 |
+------------+-----------+------------+-----------------+---+---------+
| 'rbf' | 0.1 | -- | 0.80 |...| 3 |
+------------+-----------+------------+-----------------+---+---------+
| 'rbf' | 0.2 | -- | 0.93 |...| 1 |
+------------+-----------+------------+-----------------+---+---------+

將由以下內容的“ cv_results_”字典表示:{

'param_kernel': masked_array(data = ['poly', 'poly', 'rbf', 'rbf'],
mask = [False False False False]...)
'param_gamma': masked_array(data = [-- -- 0.1 0.2],
mask = [ True True False False]...),
'param_degree': masked_array(data = [2.0 3.0 -- --],
mask = [False False True True]...),
'split0_test_score' : [0.80, 0.70, 0.80, 0.93],
'split1_test_score' : [0.82, 0.50, 0.70, 0.78],
'mean_test_score' : [0.81, 0.60, 0.75, 0.85],
'std_test_score' : [0.01, 0.10, 0.05, 0.08],
'rank_test_score' : [2, 4, 3, 1],
'split0_train_score' : [0.80, 0.92, 0.70, 0.93],
'split1_train_score' : [0.82, 0.55, 0.70, 0.87],
'mean_train_score' : [0.81, 0.74, 0.70, 0.90],
'std_train_score' : [0.01, 0.19, 0.00, 0.03],
'mean_fit_time' : [0.73, 0.63, 0.43, 0.49],
'std_fit_time' : [0.01, 0.02, 0.01, 0.01],
'mean_score_time' : [0.01, 0.06, 0.04, 0.04],
'std_score_time' : [0.00, 0.00, 0.00, 0.01],
'params' : [{'kernel': 'poly', 'degree': 2}, ...],
}

注意

鍵``params''用于存盤所有候選引數的引數設定字典串列

``mean_fit_time'',``std_fit_time'',``mean_score_time''和``std_score_time''都以秒為單位,

對于多指標評估,所有得分者的得分都可以在“ cv_results_” dict中以該得分者的名字(“ _ <scorer_name>””)而不是“ _score”的鍵獲得,如上所示, (“ split0_test_precision”,“ mean_train_precision”等)

best_estimator_:估算器,搜索選擇的估算器,即在剩余資料上給出最高分(或最小損失,如果指定)的估算器,如果``refit = False'',則不可用,

有關允許值的更多資訊,請參見“改裝”引數,

best_score_:浮動, best_estimator的平均交叉驗證得分,對于多指標評估,僅在指定``refit''時才存在,如果``refit''是一個函式,則此屬性不可用,

best_params_:字典,引數設定可使保留資料獲得最佳結果,對于多指標評估,僅在指定``refit''時才存在,

best_index_:整數,與“ cv_results_”陣列的索引相對應的最佳候選引數設定, search.cv_results _ ['params'] [search.best_index_]上的字典給出了最佳模型的引數設定,該模型給出了最高的平均得分(“ search.best_score_”),
對于多指標評估,僅在指定``refit''時才存在,

scorer_:函式或字典,對保留的資料使用記分器功能,以為模型選擇最佳引數,對于多指標評估,此屬性保存已驗證的“評分”字典,該評分將記分員鍵映射到可呼叫的記分員,

n_splits_:整數,交叉驗證拆分(折疊/迭代)的數量

refit_time_:浮動,用于在整個資料集中重新擬合最佳模型的秒數,僅當``refit''不為False時才存在,
..版本添加:: 0.20

注意
-----
所選擇的引數是那些使遺留資料的分數最大化的引數,除非傳遞了顯式分數,否則將使用該顯式分數,
如果將n_jobs的值設定為大于1的值,則會為網格中的每個點復制資料(而不是n_jobs次),如果出于效率考慮,這樣做是因為單個作業花費的時間很少,但是如果資料集很大且沒有足夠的可用記憶體,則可能會引發錯誤,這種情況下的解決方法是設定`pre_dispatch`,然后,該記憶體僅被復制一次pre_dispatch多次, pre_dispatch的合理值是2 * n_jobs,

也可以看看
---------
ParameterGrid
生成超引數網格的所有組合

:func:`sklearn.model_selection.train_test_split`:
實用程式功能將資料分為可用于擬合GridSearchCV實體的開發集和用于其最終評估的評估集,

:func:`sklearn.metrics.make_scorer`:
根據績效指標或損失函式確定得分手,

“”

_required_parameters = ["estimator", "param_grid"]
@_deprecate_positional_args
def __init__(self, estimator, param_grid, *, scoring=None,
n_jobs=None, iid='deprecated', refit=True, cv=None,
verbose=0, pre_dispatch='2*n_jobs',
error_score=np.nan, return_train_score=False):
super().__init__(estimator=estimator, scoring=scoring,
n_jobs=n_jobs, iid=iid, refit=refit, cv=cv, verbose=verbose,
pre_dispatch=pre_dispatch, error_score=error_score,
return_train_score=return_train_score)
self.param_grid = param_grid
_check_param_grid(param_grid)

def _run_search(self, evaluate_candidates):
"""Search all candidates in param_grid"""
evaluate_candidates(ParameterGrid(self.param_grid))

轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/179161.html

標籤:其他

上一篇:滑走,別看!我怕你看完會想深入理解MySQL技術(篇一:基礎篇)

下一篇:如何使用Google Colab運行TensorFlow專案

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 【從零開始擼一個App】Dagger2

    Dagger2是一個IOC框架,一般用于Android平臺,第一次接觸的朋友,一定會被搞得暈頭轉向。它延續了Java平臺Spring框架代碼碎片化,注解滿天飛的傳統。嘗試將各處代碼片段串聯起來,理清思緒,真不是件容易的事。更不用說還有各版本細微的差別。 與Spring不同的是,Spring是通過反射 ......

    uj5u.com 2020-09-10 06:57:59 more
  • Flutter Weekly Issue 66

    新聞 Flutter 季度調研結果分享 教程 Flutter+FaaS一體化任務編排的思考與設計 詳解Dart中如何通過注解生成代碼 GitHub 用對了嗎?Flutter 團隊分享如何管理大型開源專案 插件 flutter-bubble-tab-indicator A Flutter librar ......

    uj5u.com 2020-09-10 06:58:52 more
  • Proguard 常用規則

    介紹 Proguard 入口,如何查看輸出,如何使用 keep 設定入口以及使用實體,如何配置壓縮,混淆,校驗等規則。

    ......

    uj5u.com 2020-09-10 06:59:00 more
  • Android 開發技術周報 Issue#292

    新聞 Android即將獲得類AirDrop功能:可向附近設備快速分享檔案 谷歌為安卓檔案管理應用引入可安全隱藏資料的Safe Folder功能 Android TV新主界面將顯示電影、電視節目和應用推薦內容 泄露的Android檔案暗示了傳說中的谷歌Pixel 5a與折疊屏新機 谷歌發布Andro ......

    uj5u.com 2020-09-10 07:00:37 more
  • AutoFitTextureView Error inflating class

    報錯: Binary XML file line #0: Binary XML file line #0: Error inflating class xxx.AutoFitTextureView 解決: <com.example.testy2.AutoFitTextureView android: ......

    uj5u.com 2020-09-10 07:00:41 more
  • 根據Uri,Cursor沒有獲取到對應的屬性

    Android: 背景:呼叫攝像頭,拍攝視頻,指定保存的地址,但是回傳的Cursor檔案,只有名稱和大小的屬性,沒有其他諸如時長,連ID屬性都沒有 使用 cursor.getInt(cursor.getColumnIndexOrThrow(MediaStore.Video.Media.DURATIO ......

    uj5u.com 2020-09-10 07:00:44 more
  • Android連載29-持久化技術

    一、持久化技術 我們平時所使用的APP產生的資料,在記憶體中都是瞬時的,會隨著斷電、關機等丟失資料,因此android系統采用了持久化技術,用于存盤這些“瞬時”資料 持久化技術包括:檔案存盤、SharedPreference存盤以及資料庫存盤,還有更復雜的SD卡記憶體儲。 二、檔案存盤 最基本存盤方式, ......

    uj5u.com 2020-09-10 07:00:47 more
  • Android Camera2Video整合到自己專案里

    背景: Android專案里呼叫攝像頭拍攝視頻,原本使用的 MediaStore.ACTION_VIDEO_CAPTURE, 后來因專案需要,改成了camera2 1.Camera2Video 官方demo有點問題,下載后,不能直接整合到專案 問題1.多次拍攝視頻崩潰 問題2.雙擊record按鈕, ......

    uj5u.com 2020-09-10 07:00:50 more
  • Android 開發技術周報 Issue#293

    新聞 谷歌為Android TV開發者提供多種新功能 Android 11將自動填表功能整合到鍵盤輸入建議中 谷歌宣布Android Auto即將支持更多的導航和數字停車應用 谷歌Pixel 5只有XL版本 搭載驍龍765G且將比Pixel 4更便宜 [圖]Wear OS將迎來重磅更新:應用啟動時間 ......

    uj5u.com 2020-09-10 07:01:38 more
  • 海豚星空掃碼投屏 Android 接收端 SDK 集成 六步驟

    掃碼投屏,開放網路,獨占設備,不需要額外下載軟體,微信掃碼,發現設備。支持標準DLNA協議,支持倍速播放。視頻,音頻,圖片投屏。好點意思。還支持自定義基于 DLNA 擴展的操作動作。好像要收費,沒體驗。 這里簡單記錄一下集成程序。 一 跟目錄的build.gradle添加私有mevan倉庫 mave ......

    uj5u.com 2020-09-10 07:01:43 more
最新发布
  • 歡迎頁輪播影片

    如圖,引導開始,球從上落下,同時淡入文字,然后文字開始輪播,最后一頁時停止,點擊進入首頁。 在來看看效果圖。 重力球先不講,主要歡迎輪播簡單實作 首先新建一個類 TextTranslationXGuideView,用于影片展示 文本是類似的,最后會有個圖片箭頭影片,布局很簡單,就是一個 TextVi ......

    uj5u.com 2023-04-20 08:40:31 more
  • 【FAQ】關于華為推送服務因營銷訊息頻次管控導致服務通訊類訊息

    一. 問題描述 使用華為推送服務下發IM訊息時,下發訊息請求成功且code碼為80000000,但是手機總是收不到訊息; 在華為推送自助分析(Beta)平臺查看發現,訊息發送觸發了頻控。 二. 問題原因及背景 2023年1月05日起,華為推送服務對咨詢營銷類訊息做了單個設備每日推送數量上限管理,具體 ......

    uj5u.com 2023-04-20 08:40:11 more
  • 歡迎頁輪播影片

    如圖,引導開始,球從上落下,同時淡入文字,然后文字開始輪播,最后一頁時停止,點擊進入首頁。 在來看看效果圖。 重力球先不講,主要歡迎輪播簡單實作 首先新建一個類 TextTranslationXGuideView,用于影片展示 文本是類似的,最后會有個圖片箭頭影片,布局很簡單,就是一個 TextVi ......

    uj5u.com 2023-04-20 08:39:36 more
  • 【FAQ】關于華為推送服務因營銷訊息頻次管控導致服務通訊類訊息

    一. 問題描述 使用華為推送服務下發IM訊息時,下發訊息請求成功且code碼為80000000,但是手機總是收不到訊息; 在華為推送自助分析(Beta)平臺查看發現,訊息發送觸發了頻控。 二. 問題原因及背景 2023年1月05日起,華為推送服務對咨詢營銷類訊息做了單個設備每日推送數量上限管理,具體 ......

    uj5u.com 2023-04-20 08:39:13 more
  • iOS從UI記憶體地址到讀取成員變數(oc/swift)

    開發除錯時,我們發現bug時常首先是從UI顯示發現例外,下一步才會去定位UI相關連的資料的。XCode有給我們提供一系列debug工具,但是很多人可能還沒有形成一套穩定的除錯流程,因此本文嘗試解決這個問題,順便提出一個暴論:UI顯示例外問題只需要兩個步驟就能完成定位作業的80%: 定位例外 UI 組 ......

    uj5u.com 2023-04-19 09:16:23 more
  • FIDE重磅更新!性能飛躍!體驗有禮!

    FIDE 開發者工具重構升級啦!實作500%性能提升,誠邀體驗! 一直以來不少開發者朋友在社區反饋,在使用 FIDE 工具的程序中,時常會遇到諸如加載不及時、代碼預覽/渲染性能不如意的情況,十分影響開發體驗。 作為技術團隊,我們深知一件趁手的開發工具對開發者的重要性,因此,在2023年開年,FinC ......

    uj5u.com 2023-04-19 09:16:15 more
  • 游戲內嵌社區服務開放,助力開發者提升玩家互動與留存

    華為 HMS Core 游戲內嵌社區服務提供快速訪問華為游戲中心論壇能力,支持玩家直接在游戲內瀏覽帖子和交流互動,助力開發者擴展內容生產和觸達的場景。 一、為什么要游戲內嵌社區? 二、游戲內嵌社區的典型使用場景 1、游戲內打開論壇 您可以在游戲內繪制論壇入口,為玩家提供沉浸式發帖、瀏覽、點贊、回帖、 ......

    uj5u.com 2023-04-19 09:15:46 more
  • iOS從UI記憶體地址到讀取成員變數(oc/swift)

    開發除錯時,我們發現bug時常首先是從UI顯示發現例外,下一步才會去定位UI相關連的資料的。XCode有給我們提供一系列debug工具,但是很多人可能還沒有形成一套穩定的除錯流程,因此本文嘗試解決這個問題,順便提出一個暴論:UI顯示例外問題只需要兩個步驟就能完成定位作業的80%: 定位例外 UI 組 ......

    uj5u.com 2023-04-19 09:14:53 more
  • FIDE重磅更新!性能飛躍!體驗有禮!

    FIDE 開發者工具重構升級啦!實作500%性能提升,誠邀體驗! 一直以來不少開發者朋友在社區反饋,在使用 FIDE 工具的程序中,時常會遇到諸如加載不及時、代碼預覽/渲染性能不如意的情況,十分影響開發體驗。 作為技術團隊,我們深知一件趁手的開發工具對開發者的重要性,因此,在2023年開年,FinC ......

    uj5u.com 2023-04-19 09:14:08 more
  • 游戲內嵌社區服務開放,助力開發者提升玩家互動與留存

    華為 HMS Core 游戲內嵌社區服務提供快速訪問華為游戲中心論壇能力,支持玩家直接在游戲內瀏覽帖子和交流互動,助力開發者擴展內容生產和觸達的場景。 一、為什么要游戲內嵌社區? 二、游戲內嵌社區的典型使用場景 1、游戲內打開論壇 您可以在游戲內繪制論壇入口,為玩家提供沉浸式發帖、瀏覽、點贊、回帖、 ......

    uj5u.com 2023-04-19 09:08:34 more