DETAILED ACTION
Notice of Pre-AIA or AIA Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
Response to Amendment
As per the instant Application having Application number 18/456,057 the examiner acknowledges the applicant's submission of the amendment dated 03/31/2026. At this point, claims 1 and 11 have been amended. Claims 1-20 are pending.
Response to Arguments
Applicant’s arguments with respect to the 35 U.S.C. 102(a)(1) rejection of claim(s) 1-20 have been considered but are moot because the new ground of rejection does not rely on any reference applied in the prior rejection of record for any teaching or matter specifically challenged in the argument.
Double Patenting
The nonstatutory double patenting rejection is based on a judicially created doctrine grounded in public policy (a policy reflected in the statute) so as to prevent the unjustified or improper timewise extension of the “right to exclude” granted by a patent and to prevent possible harassment by multiple assignees. A nonstatutory double patenting rejection is appropriate where the conflicting claims are not identical, but at least one examined application claim is not patentably distinct from the reference claim(s) because the examined application claim is either anticipated by, or would have been obvious over, the reference claim(s). See, e.g., In re Berg, 140 F.3d 1428, 46 USPQ2d 1226 (Fed. Cir. 1998); In re Goodman, 11 F.3d 1046, 29 USPQ2d 2010 (Fed. Cir. 1993); In re Longi, 759 F.2d 887, 225 USPQ 645 (Fed. Cir. 1985); In re Van Ornum, 686 F.2d 937, 214 USPQ 761 (CCPA 1982); In re Vogel, 422 F.2d 438, 164 USPQ 619 (CCPA 1970); In re Thorington, 418 F.2d 528, 163 USPQ 644 (CCPA 1969).
A timely filed terminal disclaimer in compliance with 37 CFR 1.321(c) or 1.321(d) may be used to overcome an actual or provisional rejection based on nonstatutory double patenting provided the reference application or patent either is shown to be commonly owned with the examined application, or claims an invention made as a result of activities undertaken within the scope of a joint research agreement. See MPEP § 717.02 for applications subject to examination under the first inventor to file provisions of the AIA as explained in MPEP § 2159. See MPEP § 2146 et seq. for applications not subject to examination under the first inventor to file provisions of the AIA . A terminal disclaimer must be signed in compliance with 37 CFR 1.321(b).
The filing of a terminal disclaimer by itself is not a complete reply to a nonstatutory double patenting (NSDP) rejection. A complete reply requires that the terminal disclaimer be accompanied by a reply requesting reconsideration of the prior Office action. Even where the NSDP rejection is provisional the reply must be complete. See MPEP § 804, subsection I.B.1. For a reply to a non-final Office action, see 37 CFR 1.111(a). For a reply to final Office action, see 37 CFR 1.113(c). A request for reconsideration while not provided for in 37 CFR 1.113(c) may be filed after final for consideration. See MPEP §§ 706.07(e) and 714.13.
The USPTO Internet website contains terminal disclaimer forms which may be used. Please visit www.uspto.gov/patent/patents-forms. The actual filing date of the application in which the form is filed determines what form (e.g., PTO/SB/25, PTO/SB/26, PTO/AIA /25, or PTO/AIA /26) should be used. A web-based eTerminal Disclaimer may be filled out completely online using web-screens. An eTerminal Disclaimer that meets all requirements is auto-processed and approved immediately upon submission. For more information about eTerminal Disclaimers, refer to www.uspto.gov/patents/apply/applying-online/eterminal-disclaimer.
Claim 1-20 rejected on the ground of nonstatutory double patenting as being unpatentable over claim 1-20 of U.S. Patent No. 11,741,397. Although the claims at issue are not identical, they are not patentably distinct from each other because:
Claims 1-20 of the instant application
Claims 1-20 of U.S. Patent No. 11,741,397
Claims 1 and 11, taking claim 11 as exemplary:
A computing device configured to emulate a compute kernel with an artificial neural network (ANN), the computing device comprising: a processor configured to execute the compute kernel; and the processor further configured to substitute an ANN for the compute kernel, wherein the ANN is an ANN emulation of the compute kernel.
Claims 1 and 11, taking claim 11 as exemplary:
A computing device configured to emulate a compute kernel with an artificial neural network (ANN), the computing device comprising: a processor configured to execute the compute kernel and to determine whether the compute kernel is a hotspot kernel; the processor further configured to, if the compute kernel is a hotspot kernel: emulate the compute kernel with an ANN, and substitute the ANN for the compute kernel.
Claims 2 and 12, taking claim 12 as exemplary:
The computing device of claim 11, wherein the processor is configured to substitute the ANN for the compute kernel responsive to the compute kernel comprising a hotspot kernel.
Claims 1 and 11, taking claim 11 as exemplary:
A computing device configured to emulate a compute kernel with an artificial neural network (ANN), the computing device comprising: a processor configured to execute the compute kernel and to determine whether the compute kernel is a hotspot kernel; the processor further configured to, if the compute kernel is a hotspot kernel: emulate the compute kernel with an ANN, and substitute the ANN for the compute kernel.
Regarding claims 3 and 13, taking claim 13 as exemplary:
The computing device of claim 11, wherein the processor is configured to substitute the ANN for the compute kernel responsive to a compute resource utilization of the compute kernel exceeding a compute resource utilization of a different compute kernel, or exceeding a threshold
Claims 2 and 12, taking claim 12 as exemplary:
The computing device of claim 11, wherein determining whether the compute kernel is a hotspot kernel comprises comparing a compute resource utilization of the compute kernel with a threshold.
-OR because the claims 3 and 13 of the instant application is written in the alternative-
Claims and 13, taking claim 13 as exemplary:
The computing device of claim 11, wherein determining whether the compute kernel is a hotspot kernel comprises comparing a compute resource utilization of the compute kernel with a compute resource utilization of a different compute kernel.
Claims 4 and 14, taking claim 14 as exemplary:
The computing device of claim 11, wherein the ANN comprises an emulation of the compute kernel, and wherein emulating the compute kernel with the ANN comprises offline-training the ANN prior to executing the compute kernel.
Claims 4 and 14, taking claim 14 as exemplary:
The computing device of claim 11, wherein emulating the compute kernel with an ANN comprises offline-training the ANN prior to executing the compute kernel.
Regarding claims 5 and 15, taking claim 15 as exemplary:
The computing device of claim 14, wherein offline-training the ANN comprises: inputting, to the ANN, training data typical of inputs to the compute kernel, comparing outputs from the ANN to known correct outputs corresponding to the training data; and adjusting the ANN based on differences between the outputs from the ANN and the known correct outputs.
Claims 5 and 15, taking claim 15 as exemplary:
The computing device of claim 14, wherein offline-training the ANN comprises: inputting, to the ANN, training data typical of inputs to the compute kernel, comparing outputs from the ANN to known correct outputs corresponding to the training data; and adjusting the ANN based on differences between the outputs from the ANN and the known correct outputs.
Regarding claims 6 and 16, taking claim 16 as exemplary:
The computing device of claim 11, wherein the ANN comprises an emulation of the compute kernel, and wherein emulating the compute kernel with the ANN comprises online-training the ANN based on execution of the compute kernel.
Claims 6 and 16, taking claim 16 as exemplary:
The computing device of claim 11, wherein emulating the compute kernel with an ANN comprises online-training the ANN based on execution of the compute kernel.
Regarding claims 7 and 17, taking claim 17 as exemplary:
The computing device of claim 16, wherein the processor is further configured to offline-train the ANN, the processor further configured to input, to the ANN, inputs which were input to the compute kernel, compare outputs from the ANN to known correct outputs corresponding to the inputs which were input to the compute kernel; and adjust the ANN based on differences between the outputs from the ANN and the known correct outputs.
Claims 7 and 17, taking claim 17 as exemplary:
The computing device of claim 16, wherein the processor is further configured to offline-train the ANN, the processor further configured to input, to the ANN, inputs which were input to the compute kernel, compare outputs from the ANN to known correct outputs corresponding to the inputs which were input to the compute kernel; and adjust the ANN based on differences between the outputs from the ANN and the known correct outputs.
Regarding claims 8 and 18, taking claim 18 as exemplary:
The computing device of claim 11, wherein the ANN comprises an emulation of the compute kernel, and wherein emulating the compute kernel with the ANN comprises offline-training the ANN prior to executing the compute kernel, and refining the ANN using online-training based on execution of the compute kernel.
Claims 8 and 18, taking claim 18 as exemplary:
The computing device of claim 11, wherein emulating the compute kernel with an ANN comprises offline-training the ANN prior to executing the compute kernel, and refining the ANN using online-training based on execution of the compute kernel.
Regarding claims 9 and 19, taking claim 19 as exemplary:
The computing device of claim 11, wherein substituting the ANN for the compute kernel comprises executing the ANN on the processor.
Claims 9 and 19, taking claim 19 as exemplary:
The computing device of claim 11, wherein substituting the ANN for the compute kernel comprises executing the ANN on the processor.
Regarding claims 10 and 20, taking claim 20 as exemplary:
The computing device of claim 11, wherein substituting the ANN for the compute kernel comprises executing the ANN on a different processor in communication with the processor.
Claims 10 and 20, taking claim 20 as exemplary:
The computing device of claim 11, wherein substituting the ANN for the compute kernel comprises executing the ANN on a different processor in communication with the processor.
Claim Rejections - 35 USC § 103
In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis (i.e., changing from AIA to pre-AIA ) for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status.
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
The factual inquiries for establishing a background for determining obviousness under 35 U.S.C. 103 are summarized as follows:
1. Determining the scope and contents of the prior art.
2. Ascertaining the differences between the prior art and the claims at issue.
3. Resolving the level of ordinary skill in the pertinent art.
4. Considering objective evidence present in the application indicating obviousness or nonobviousness.
Claim(s) 1-20 is/are rejected under 35 U.S.C. 103 as being unpatentable over Brothers et al., (US 2016/0358070 A1, hereinafter Brothers) in view of Rui et al., (US 2018/0330233 A1, hereinafter Rui).
Regarding claims 1 and 11, taking claim 11 as exemplary:
Brothers shows “A computing device configured to emulate a compute kernel with an artificial neural network (ANN), the computing device comprising: a processor configured to execute the compute kernel; and the processor further configured to substitute an ANN for the compute kernel,” (Paragraph [0005]: “One embodiment includes a method of tuning a neural network. The method includes selecting a portion of a first neural network for modification to increase computational efficiency and generating, using a processor, a second neural network based upon the first neural network by modifying the selected portion of the first neural network while offline.” And in paragraph [0057]: “the neural network analyzer may iterate through method 300 more than one time to apply a given modification type, e.g., convolution kernel substitution, to the neural network. For example, during a first iteration, the neural network analyzer may identify a first subset of convolution kernels for substitution and, during a subsequent iteration, identify a second and different set of convolution kernels for substitution. During further iterations, other types of analysis may be applied.” And in paragraph [0060]: “different modification types are described that the neural network analyzer may apply to a neural network in performing blocks 320 and/or 325. One example modification type is convolution kernel substitution. Deep convolutional neural networks (DCNN) can have a number of convolutional layers with different sizes of convolution kernels. Each convolution kernel is applied to the data in neighboring input feature maps and can consume a substantial amount of the computation time (e.g., 80-90% in an example case) for neural network execution. Such convolution kernels can be selected as candidates for optimization.” In paragraph [0061]: “As defined within this specification, the term “convolution kernel substitution” means replacing a kernel of a neural network with a replacement convolution kernel that differs from the convolution kernel being replaced by at least one value, i.e., weight. The replacement convolution kernel may be equivalent to the selected convolution kernel or an approximation of the selected convolution kernel. The replacement convolution kernel uses fewer computations and/or consumes less memory than the selected convolution kernel. In one aspect, convolution kernel replacement may be an example of a modification that adjusts one or more weights of a portion of the neural network.”)
But Brothers does not appear to explicitly recite “wherein the ANN is an ANN emulation of the compute kernel.” (Paragraph [0026]: “a neural network is trained to replace the convolution kernel used for scatter correction. The training data set may be generated from Monte Carlo simulations, so that actual measurements are not employed. By way of example, one approach would be to train the parameters of a convolution kernel using machine-learning. For example, in PET, five parameters are used for the convolution kernel design and some or all of these parameters may be trained using machine learning. Similarly, in CT, CBCT, or other suitable imaging context, some number of parameters may be specified in designing a convolution kernel and some or all of these parameters may be trained using machine learning as discussed herein. An alternative approach with respect to these imaging modalities would be to replace the convolution-kernel-based scatter estimation with a trained neural network (e.g., a convolution network).”)
However, Rui teaches “wherein the ANN is an ANN emulation of the compute kernel.”
Brothers and Rui are analogous in the arts because both Brothers and Rui describe using kernels.
Therefore, it would be obvious to one of ordinary skill in the art at the filing date of the instant application, having the teachings of Brothers and Rui before him or her, to modify the teachings of Brothers to include the teachings of Rui in order to increase usability of kernels by decreasing the need to fine-tune or design convolution kernels by replacing them with a trained neural network (see Rui paragraph [0025).
Regarding claims 2 and 12, taking claim 12 as exemplary:
Brothers and Rui teach the method and device of claims 1 and 11 as claimed and specified above.
And Brothers shows “wherein the processor is configured to substitute the ANN for the compute kernel responsive to the compute kernel comprising a hotspot kernel.” (Paragraph [0057]: “the neural network analyzer may iterate through method 300 more than one time to apply a given modification type, e.g., convolution kernel substitution, to the neural network. For example, during a first iteration, the neural network analyzer may identify a first subset of convolution kernels for substitution and, during a subsequent iteration, identify a second and different set of convolution kernels for substitution. During further iterations, other types of analysis may be applied.” And in paragraph [0060]: “different modification types are described that the neural network analyzer may apply to a neural network in performing blocks 320 and/or 325. One example modification type is convolution kernel substitution. Deep convolutional neural networks (DCNN) can have a number of convolutional layers with different sizes of convolution kernels. Each convolution kernel is applied to the data in neighboring input feature maps and can consume a substantial amount of the computation time (e.g., 80-90% in an example case) for neural network execution. Such convolution kernels can be selected as candidates for optimization.” In paragraph [0061]: “As defined within this specification, the term “convolution kernel substitution” means replacing a kernel of a neural network with a replacement convolution kernel that differs from the convolution kernel being replaced by at least one value, i.e., weight. The replacement convolution kernel may be equivalent to the selected convolution kernel or an approximation of the selected convolution kernel. The replacement convolution kernel uses fewer computations and/or consumes less memory than the selected convolution kernel. In one aspect, convolution kernel replacement may be an example of a modification that adjusts one or more weights of a portion of the neural network.”)
Regarding claims 3 and 13, taking claim 13 as exemplary:
Brothers and Rui teach the method and device of claims 1 and 11 as claimed and specified above.
Brothers shows “wherein the processor is configured to substitute the ANN for the compute kernel responsive to a compute resource utilization of the compute kernel exceeding a compute resource utilization of a different compute kernel, or exceeding a threshold.” (Paragraph [0057]: “the neural network analyzer may iterate through method 300 more than one time to apply a given modification type, e.g., convolution kernel substitution, to the neural network. For example, during a first iteration, the neural network analyzer may identify a first subset of convolution kernels for substitution and, during a subsequent iteration, identify a second and different set of convolution kernels for substitution. During further iterations, other types of analysis may be applied.” And in paragraph [0060]: “different modification types are described that the neural network analyzer may apply to a neural network in performing blocks 320 and/or 325. One example modification type is convolution kernel substitution. Deep convolutional neural networks (DCNN) can have a number of convolutional layers with different sizes of convolution kernels. Each convolution kernel is applied to the data in neighboring input feature maps and can consume a substantial amount of the computation time (e.g., 80-90% in an example case) for neural network execution. Such convolution kernels can be selected as candidates for optimization.” In paragraph [0061]: “As defined within this specification, the term “convolution kernel substitution” means replacing a kernel of a neural network with a replacement convolution kernel that differs from the convolution kernel being replaced by at least one value, i.e., weight. The replacement convolution kernel may be equivalent to the selected convolution kernel or an approximation of the selected convolution kernel. The replacement convolution kernel uses fewer computations and/or consumes less memory than the selected convolution kernel. In one aspect, convolution kernel replacement may be an example of a modification that adjusts one or more weights of a portion of the neural network.” And in paragraph [0064]: “FIG. 4 illustrates an example where a threshold may be specified so that weights that do not exceed the threshold are set to zero. In the example of FIG. 4, the threshold may be set to 0.1. The neural network analyzer may set any weight of a convolution kernel selected for convolution kernel substitution to zero if that weight does not exceed the 0.1 threshold. The neural network analyzer may apply convolution kernel substitution to one or more convolution kernels, convolution kernels in one or more particular layers, all convolution kernels, or apply another selection criterion. As noted, the threshold may be set according to data obtained from a user input or a configuration file. In this regard, the aggressiveness of the neural network analyzer, in terms of setting weights to zero for purposes of convolution kernel substitution, may be adjusted through adjustment of the threshold.”)
Regarding claims 4 and 14, taking claim 14 as exemplary:
Brothers and Rui teach the method and device of claims 1 and 11 as claimed and specified above.
Brothers shows “wherein the ANN comprises an emulation of the compute kernel, and wherein emulating the compute kernel with the ANN comprises offline-training the ANN prior to executing the compute kernel.” (Paragraph [0025]: “Neural network analyzer 104 may operate on neural network 102 to generate neural network 106 as an offline process. An “offline” process, for example, is one that is performed while not executing the neural network in an application utilizing the neural network, as part of a system, for a service, for a user, or for a client device. As a further example, an offline process can correspond to a process that is not executed in a real-time environment.” And in paragraph [0057]: “the neural network analyzer may iterate through method 300 more than one time to apply a given modification type, e.g., convolution kernel substitution, to the neural network. For example, during a first iteration, the neural network analyzer may identify a first subset of convolution kernels for substitution and, during a subsequent iteration, identify a second and different set of convolution kernels for substitution. During further iterations, other types of analysis may be applied.”)
Regarding claims 5 and 15, taking claim 15 as exemplary:
Brothers and Rui teach the method and device of claims 4 and 14 as claimed and specified above.
Brothers shows “wherein offline-training the ANN comprises: inputting, to the ANN, training data typical of inputs to the compute kernel, comparing outputs from the ANN to known correct outputs corresponding to the training data; and adjusting the ANN based on differences between the outputs from the ANN and the known correct outputs.” (Paragraph [0027]: “neural network 102 is pre-trained. For example, neural network 102 may be trained to a point where the weights of the neural network have converged or substantially converged. In particular, a training process has determined a set of weights (e.g., convolution kernels) that provides the neural network with the desired input-output relationship. As an illustrative example, a learning process can adjust the weights of the neural network repeatedly to change the input-output relationship so that an input-output accuracy cost function is optimized.” And in paragraph [0042]: “the aggressive setting for the neural network analyzer may permit a reduction in accuracy of the modified neural network compared to the first neural network in order to achieve improvement in some other aspect of performance of the modified neural network compared to the first neural network. As an example, the aggressive setting may allow a reduction in accuracy of the modified neural network if at least a minimum improvement in runtime, throughput, and/or power efficiency is achieved. The medium setting may also permit a reduction in accuracy in the modified neural network compared to the first neural network if improvement in one or more other aspects of performance of the modified neural network compared to the first neural network is achieved. The amount of reduction in accuracy and the amount of improvement in the other aspects of performance may be lower than that of the aggressive setting. The conservative setting may require that accuracy of the modified neural network not decrease from that of the first neural network while achieving improvement in one or more other aspects of performance of the modified neural network compared to the first neural network.”)
Regarding claims 6 and 16, taking claim 16 as exemplary:
Brothers and Rui teach the method and device of claims 1 and 11 as claimed and specified above.
Brothers shows “wherein the ANN comprises an emulation of the compute kernel, and wherein emulating the compute kernel with the ANN comprises online-training the ANN based on execution of the compute kernel.” (Paragraph [0057]: “the neural network analyzer may iterate through method 300 more than one time to apply a given modification type, e.g., convolution kernel substitution, to the neural network. For example, during a first iteration, the neural network analyzer may identify a first subset of convolution kernels for substitution and, during a subsequent iteration, identify a second and different set of convolution kernels for substitution. During further iterations, other types of analysis may be applied.” And in paragraph [0055]: “Continuing with block 340, the neural network analyzer may retrain the second neural network... the neural network analyzer may retrain the second neural network responsive to detecting a retraining condition such as not meeting a performance metric. In block 345, the neural network analyzer may validate the performance of the modified neural network. In block 350, the neural network analyzer may determine whether the performance of the modified neural network is acceptable. If so, the modifications to the neural network are retained and method 300 continues to block 360. If not, method 300 may proceed to block 355 where the neural network analyzer reverses the modification(s) implemented in block 325.” And in paragraph [0089]: “In general, FIG. 9 illustrates that after a neural network is trained and the convolution weights are determined… retraining may be performed on the re-parameterized neural network. As part of the retraining, the neural network may be redefined in terms of base convolution kernels, scaling factors, and the convolution weights. The weights of the base convolution kernels and the scaling factors may be refined as a result of the retraining. In addition, other network parameters such as the weights of the fully connected layers may be refined.”)
Regarding claims 7 and 17, taking claim 17 as exemplary:
Brothers and Rui teach the method and device of claims 6 and 16 as claimed and specified above.
Brothers shows “wherein the processor is further configured to offline-train the ANN, the processor further configured to input, to the ANN, inputs which were input to the compute kernel, compare outputs from the ANN to known correct outputs corresponding to the inputs which were input to the compute kernel; and adjust the ANN based on differences between the outputs from the ANN and the known correct outputs.” (Paragraph [0027]: “neural network 102 is pre-trained. For example, neural network 102 may be trained to a point where the weights of the neural network have converged or substantially converged. In particular, a training process has determined a set of weights (e.g., convolution kernels) that provides the neural network with the desired input-output relationship. As an illustrative example, a learning process can adjust the weights of the neural network repeatedly to change the input-output relationship so that an input-output accuracy cost function is optimized.” And in paragraph [0042]: “the aggressive setting for the neural network analyzer may permit a reduction in accuracy of the modified neural network compared to the first neural network in order to achieve improvement in some other aspect of performance of the modified neural network compared to the first neural network. As an example, the aggressive setting may allow a reduction in accuracy of the modified neural network if at least a minimum improvement in runtime, throughput, and/or power efficiency is achieved. The medium setting may also permit a reduction in accuracy in the modified neural network compared to the first neural network if improvement in one or more other aspects of performance of the modified neural network compared to the first neural network is achieved. The amount of reduction in accuracy and the amount of improvement in the other aspects of performance may be lower than that of the aggressive setting. The conservative setting may require that accuracy of the modified neural network not decrease from that of the first neural network while achieving improvement in one or more other aspects of performance of the modified neural network compared to the first neural network.” And in paragraph [0078]: “the neural network analyzer performs the pruning process and selects sub-process 702 for pruning based on a determination that the sub-process 702 has little or no substantial effect on the output of the neural network. The neural network analyzer, for example, may determine that accuracy and loss of neural network 800 after pruning are within acceptable limits of accuracy and loss specified by the performance requirements compared to neural network 700 prior to pruning.)
Regarding claims 8 and 18, taking claim 18 as exemplary:
Brothers and Rui teach the method and device of claims 1 and 11 as claimed and specified above.
Brothers shows “wherein the ANN comprises an emulation of the compute kernel, and wherein emulating the compute kernel with the ANN comprises offline-training the ANN prior to executing the compute kernel, and refining the ANN using online-training based on execution of the compute kernel.” (Paragraph [0057]: “the neural network analyzer may iterate through method 300 more than one time to apply a given modification type, e.g., convolution kernel substitution, to the neural network. For example, during a first iteration, the neural network analyzer may identify a first subset of convolution kernels for substitution and, during a subsequent iteration, identify a second and different set of convolution kernels for substitution. During further iterations, other types of analysis may be applied.” And in paragraph [0055]: “Continuing with block 340, the neural network analyzer may retrain the second neural network... the neural network analyzer may retrain the second neural network responsive to detecting a retraining condition such as not meeting a performance metric. In block 345, the neural network analyzer may validate the performance of the modified neural network. In block 350, the neural network analyzer may determine whether the performance of the modified neural network is acceptable. If so, the modifications to the neural network are retained and method 300 continues to block 360. If not, method 300 may proceed to block 355 where the neural network analyzer reverses the modification(s) implemented in block 325.” And in paragraph [0089]: “In general, FIG. 9 illustrates that after a neural network is trained and the convolution weights are determined… retraining may be performed on the re-parameterized neural network. As part of the retraining, the neural network may be redefined in terms of base convolution kernels, scaling factors, and the convolution weights. The weights of the base convolution kernels and the scaling factors may be refined as a result of the retraining. In addition, other network parameters such as the weights of the fully connected layers may be refined.”)
Regarding claims 9 and 19, taking claim 19 as exemplary:
Brothers and Rui teach the method and device of claims 1 and 11 as claimed and specified above.
Brothers shows “wherein substituting the ANN for the compute kernel comprises executing the ANN on the processor.” (Paragraph [0049]: “In block 325, the neural network analyzer generates a second neural network based on the first neural network received as input in block 305. In one embodiment, the neural network analyzer generates the modified neural network by modifying one or more portions of the first neural network or a copy thereof. For example, the neural network analyzer can modify the portion of the first neural network identified in block 320. The neural network analyzer may apply a selected modification type to the portion of the first neural network identified in block 320 resulting in the second neural network. As discussed, the second neural network is output and may be considered a modified version of the first neural network.” In paragraph [0050]: “In block 330, the neural network analyzer may validate performance of the second neural network. The neural network analyzer may validate any of a variety of different aspects of performance. For example, the neural network analyzer may validate any performance requirements that may be specified. In one embodiment, the neural network analyzer performs validation by forward propagating validation test sets. The neural network analyzer may be configured to perform validation automatically.” And in paragraph [0051]: “In block 335, the neural network analyzer may determine whether the performance of the second neural network is acceptable.” And in paragraph [0032]: “neural network 106 are functional data structures that impart functionality when employed as part of neural network analyzer 104 or provided to a neural network engine or other processor for implementation and/or execution”)
Regarding claims 10 and 20, taking claim 20 as exemplary:
Brothers and Rui teach the method and device of claims 1 and 11 as claimed and specified above.
Brothers shows “wherein substituting the ANN for the compute kernel comprises executing the ANN on a different processor in communication with the processor.” (Paragraph [0032]: “Operating system 250, application(s) 255, and any data items used, generated, and/or operated upon by neural network analyzer 104 such as neural network 102 and/or neural network 106 are functional data structures that impart functionality when employed as part of neural network analyzer 104 or provided to a neural network engine or other processor for implementation and/or execution. For example, application 255 can include program code which causes processor 205 to perform one or more of the methods 300, 1000, or 1100 described herein and/or one or more of the operations of FIGS. 4, 5, 6, 7, 8, and/or 9 described herein. In this way, processor 205 is a special purpose processor for performing the functions defined by the one or more application(s) and/or application(s).”)
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure:
Miao et al., (US 2020/0342301 A1) describes emulation of a compute kernel of claims 1 and 11 in paragraphs [0041]-[0045] through the use an on-chip neural network and learning system and the use of memristors to simulate convolution kernel values.
Applicant's amendment necessitated the new ground(s) of rejection presented in this Office action. Accordingly, THIS ACTION IS MADE FINAL. See MPEP § 706.07(a). Applicant is reminded of the extension of time policy as set forth in 37 CFR 1.136(a).
A shortened statutory period for reply to this final action is set to expire THREE MONTHS from the mailing date of this action. In the event a first reply is filed within TWO MONTHS of the mailing date of this final action and the advisory action is not mailed until after the end of the THREE-MONTH shortened statutory period, then the shortened statutory period will expire on the date the advisory action is mailed, and any nonprovisional extension fee (37 CFR 1.17(a)) pursuant to 37 CFR 1.136(a) will be calculated from the mailing date of the advisory action. In no event, however, will the statutory period for reply expire later than SIX MONTHS from the mailing date of this final action.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to SHANE D WOOLWINE whose telephone number is (571)272-4138. The examiner can normally be reached M-F 9:30-6:00 PM.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, MIRANDA HUANG can be reached at (571) 270-7092. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
SHANE D. WOOLWINE
Primary Examiner
Art Unit 2124
/SHANE D WOOLWINE/Primary Examiner, Art Unit 2124