경고: 이 프로젝트는 더 이상 사용되지 않습니다. TensorFlow용 Swift는 머신 러닝, 컴파일러, 차별화 가능한 프로그래밍, 시스템 설계 등에 대한 최신 연구를 통합한 머신 러닝을 위한 차세대 플랫폼의 실험이었습니다. 2021년 2월에 보관되었습니다.
TensorVisitorPlan
컬렉션을 사용해 정리하기
내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.
public struct TensorVisitorPlan<Base>
TensorVisitorPlan은 [WritableKeyPath<Base, Tensor<Float>]
에 가깝지만 더 효율적입니다. 이는 그라디언트, 기존 가중치 및 보조적으로 저장된 가중치를 찾는 데 사용할 수 있는 인덱스를 매핑하려는 일반 최적화 프로그램을 작성하는 데 유용합니다. 이는 약간 더 효율적이지만(~2x) 각 개별 KeyPath를 추적하기 위해 일반 목록에 필요한 O(length_of_tree) 작업을 수행할 필요가 없기 때문에 약간 더 높은 오버헤드(추가 포인터 역참조)를 상쇄하므로 더 나을 수 있습니다.
계획을 단일 [WritableKeyPath<Base, Tensor<Float>]
로 평면화합니다.
선언
public var allTensorKeyPaths: [WritableKeyPath<Base, Tensor<Float>>] { get }
선언
public func allTensors(_ v: Base) -> [Tensor<Float>]
Base
유형의 두 값을 효율적으로 매핑하고 매핑 기능을 적용합니다. 텐서의 수를 반환합니다. 계획과 동일한 Tensor 개수를 가진 Tensor의 보조 목록에 대한 인덱싱을 허용하기 위해 추가 Int
인수가 제공됩니다.
선언
@discardableResult
public func mapTensors(
_ v1: inout Base, _ v2: Base, _ fn: (inout Tensor<Float>, Tensor<Float>, Int) -> Void
) -> Int
선언
func populateMask<Base>(_ mask: inout [Bool], _ kp: WritableKeyPath<Base, Tensor<Float>>)
선언
public func keysEnding<Base>(with kp: WritableKeyPath<Base, Tensor<Float>>) -> [Bool]
선언
func findFirstIndex<TrueBase, T>(
_ rootKeyPath: WritableKeyPath<TrueBase, Base>,
_ prefix: WritableKeyPath<TrueBase, T>, _ i: inout Int
) -> Bool
특정 접두사로 시작하는 첫 번째 키 경로의 인덱스를 찾습니다. 참고: 모든 배열 레이어는 1부터 끝까지 인덱싱을 지원합니다.
선언
func firstIndex<T>(withPrefix prefix: WritableKeyPath<Base, T>) -> Int
두 개의 KeyPath 접두사([lower, upper)로 정의된 범위에서 모든 키 인덱스를 찾습니다.
선언
public func allKeysBetween<T, U>(lower: WritableKeyPath<Base, T>, upper: WritableKeyPath<Base, U>)
-> [Bool]
`Base`: `KeyPathIterable`에서 사용 가능
Base
의 특정 인스턴스에 있는 모든 텐서를 방문할 계획을 만듭니다. 이 계획은 구조적으로 동등한 Base 버전으로 이전 가능합니다.
달리 명시되지 않는 한 이 페이지의 콘텐츠에는 Creative Commons Attribution 4.0 라이선스에 따라 라이선스가 부여되며, 코드 샘플에는 Apache 2.0 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 Google Developers 사이트 정책을 참조하세요. 자바는 Oracle 및/또는 Oracle 계열사의 등록 상표입니다.
최종 업데이트: 2024-08-29(UTC)
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"필요한 정보가 없음"
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"너무 복잡함/단계 수가 너무 많음"
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"오래됨"
},{
"type": "thumb-down",
"id": "translationIssue",
"label":"번역 문제"
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"샘플/코드 문제"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"기타"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"이해하기 쉬움"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"문제가 해결됨"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"기타"
}]
{"lastModified": "\ucd5c\uc885 \uc5c5\ub370\uc774\ud2b8: 2024-08-29(UTC)"}
[[["이해하기 쉬움","easyToUnderstand","thumb-up"],["문제가 해결됨","solvedMyProblem","thumb-up"],["기타","otherUp","thumb-up"]],[["필요한 정보가 없음","missingTheInformationINeed","thumb-down"],["너무 복잡함/단계 수가 너무 많음","tooComplicatedTooManySteps","thumb-down"],["오래됨","outOfDate","thumb-down"],["번역 문제","translationIssue","thumb-down"],["샘플/코드 문제","samplesCodeIssue","thumb-down"],["기타","otherDown","thumb-down"]],["최종 업데이트: 2024-08-29(UTC)"]]